v0.3.3-pre.005
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
|
||||
|
||||
@@ -1090,11 +1090,21 @@ Tranche matérialisée :
|
||||
|
||||
### `0.3.3-pre.005` — écriture atomique et observations
|
||||
|
||||
- acquisition atomique canonique + observation ;
|
||||
- idempotence réelle ;
|
||||
- divergence -> conflict ;
|
||||
- observation write séparée ;
|
||||
- concurrence logique testable sans API `has_*`.
|
||||
Tranche matérialisée :
|
||||
|
||||
- `PostgresBackend::persist_raw_transaction_acquisition` et `record_raw_transaction_observation` utilisent uniquement les modèles/outcomes backend-agnostiques ;
|
||||
- validation pré-I/O des réseaux et de l'égalité `observation.transaction == transaction.reference` ;
|
||||
- acquisition canonique + observation dans une transaction PostgreSQL unique ;
|
||||
- insert canonique direct `ON CONFLICT (signature) DO NOTHING RETURNING`, sans API/prélecture `has_*` ;
|
||||
- après conflit unique, `SELECT ... FOR UPDATE` puis comparaison de `slot`, `block_time`, format, version, hash et payload réel lorsque disponible ;
|
||||
- `Full`/`Archived` identiques -> `AlreadyPresent`, divergence -> `Conflict` ;
|
||||
- tombstone `Purged` compatible + `Normal` -> `SkippedPurged/NotRecorded` ;
|
||||
- tombstone compatible + `ForceRehydrate` -> restauration `Full` puis observation dans la même transaction ;
|
||||
- observation insert direct `ON CONFLICT (observation_key) DO NOTHING RETURNING`, puis verrou/lecture et comparaison de toute la référence/provenance ;
|
||||
- observation canonique absente -> `ReferenceNotFound`, canonique purgé -> `NotRecorded` ;
|
||||
- nouveaux kinds backend sûrs `Conflict`, `ReferenceNotFound`, `WriteFailed` ;
|
||||
- aucun `DELETE`, aucune pagination/cursor et aucune transition de rétention mutante dans cette tranche ;
|
||||
- V000/V001 et leurs checksums restent byte-identiques.
|
||||
|
||||
### `0.3.3-pre.006` — pagination/cursor
|
||||
|
||||
|
||||
Reference in New Issue
Block a user