v0.1.0-pre.067

This commit is contained in:
2026-07-31 07:38:27 +02:00
parent 06fddf63b3
commit 5382cf8f43
11 changed files with 505 additions and 193 deletions

View File

@@ -0,0 +1,64 @@
<!-- file: docs/architecture/STORAGE_ARCHITECTURE.md -->
<!-- version: 1 -->
# Architecture du stockage
## 1. Responsabilité de `kb-store`
`kb-store` réunit :
- les contrats store-neutral ;
- les DTO et entités persistées ;
- la pagination et les rapports de santé ;
- les traits de repositories ;
- limplémentation PostgreSQL ;
- les migrations, requêtes et mécanismes de replay associés.
La consolidation remplace lancien découpage entre plusieurs crates de stockage sans supprimer la séparation interne entre contrats et adaptateur PostgreSQL.
## 2. Frontières
### 2.1 Contrats store-neutral
Les contrats ne doivent pas dépendre des détails SQL lorsquune abstraction stable est suffisante. Ils décrivent les entrées, sorties, identifiants, pages et erreurs nécessaires aux consommateurs.
### 2.2 Adaptateur PostgreSQL
Le module PostgreSQL possède :
- la connexion et linitialisation ;
- lapplication idempotente des migrations ;
- les requêtes typées ;
- les diagnostics ;
- les opérations de replay et de sélection de candidats.
### 2.3 Modèles partagés
Les modèles métier communs restent dans `kb-lib` lorsquils dépassent la seule persistance. `kb-store` ne doit pas créer une seconde définition concurrente dun contrat partagé.
## 3. Catégories de données
Le stockage couvre plusieurs niveaux :
- données brutes acquises ;
- transactions et instructions canoniques ;
- événements de décodage et diagnostics ;
- matérialisations ;
- états de campagne et candidats de replay ;
- informations opérationnelles et de santé.
Les noms exacts de tables et APIs publiques seront documentés dans `kb-store/USAGE.md` à partir des exports et migrations actuels.
## 4. Propriétés attendues
- initialisation idempotente ;
- pagination bornée ;
- traçabilité des campagnes ;
- absence de double effet lors des replays ;
- validation stricte des entrées ;
- erreurs explicites ;
- séparation entre données brutes, résultats de décodage et matérialisations.
## 5. Données de test
Les fixtures privées, bases locales et preuves temporaires ne font pas partie des livraisons. Les matrices contractuelles partagées restent sous `test-fixtures/contract-matrices/` lorsquelles sont nécessaires aux tests.