53 lines
2.1 KiB
Markdown
53 lines
2.1 KiB
Markdown
<!-- file: kb-store/README.md -->
|
||
<!-- version: 3 -->
|
||
|
||
# kb-store
|
||
|
||
`kb-store` consolide les contrats de stockage et l’implémentation PostgreSQL de `khadhroony-bot3`.
|
||
|
||
## Périmètre
|
||
|
||
La crate expose :
|
||
|
||
- DTO et entités raw, observations, Core, décodage, matérialisation et ledger ;
|
||
- traits async de repositories indépendants du backend ;
|
||
- pagination et filtres bornés ;
|
||
- `PostgresStore` et ses options de connexion ;
|
||
- initialisation idempotente du schéma et migrations SQL ;
|
||
- diagnostics read-only, healthchecks et résumés de replay ;
|
||
- transactions atomiques pour extraction, décodage et matérialisation.
|
||
|
||
## Responsabilités
|
||
|
||
- garantir les invariants des données persistées ;
|
||
- séparer contrats et implémentation PostgreSQL à l’intérieur de la crate consolidée ;
|
||
- maintenir les tables canoniques `kb_sol_*` ;
|
||
- fournir au pipeline des frontières async typées ;
|
||
- protéger les opérations multi-tables par transactions ;
|
||
- borner toutes les requêtes de diagnostic et de replay exposées.
|
||
|
||
## Hors périmètre
|
||
|
||
La crate ne décode pas les instructions, n’acquiert pas les transactions et ne décide pas quelle matérialisation exécuter. Elle persiste les résultats produits par `kb-lib` et orchestrés par `kb-pipeline`.
|
||
|
||
## API publique
|
||
|
||
Les consommateurs utilisent principalement `PostgresStore`, `PostgresStoreOptions`, les traits `*Store`, les DTO `*Insert`/`*Row`, les filtres de replay et les diagnostics. Les constantes de tables et fonctions de validation sont publiques pour les audits et outils d’administration.
|
||
|
||
## Relations
|
||
|
||
- dépend de `kb-core` pour les erreurs ;
|
||
- utilise les contrats de replay de `kb-lib` ;
|
||
- est consommée principalement par `kb-pipeline`, les scénarios de démonstration et le desktop.
|
||
|
||
## Statut
|
||
|
||
Le stockage consolidé dispose de tests unitaires étendus et de tests PostgreSQL optionnels pilotés par environnement. Les opérations réelles exigent un serveur PostgreSQL et l’application préalable des migrations.
|
||
|
||
## Documents
|
||
|
||
- [Utilisation](USAGE.md)
|
||
- [Travaux restants](TODO.md)
|
||
- [Historique](CHANGELOG.md)
|
||
- [Architecture du stockage](../docs/architecture/STORAGE_ARCHITECTURE.md)
|