Files
khadhroony-bot3/docs/guides/POSTGRES_STORAGE.md
2026-07-31 19:34:00 +02:00

1.9 KiB
Raw Blame History

Guide PostgreSQL et contrats de stockage

Objectif

kb-store consolide les contrats de stockage Core, raw, decode et PostgreSQL de bot2 dans une crate unique.

Connexion

let options = match kb_store::PostgresStoreOptions::new(
    database_url,
    10,
    10_000,
    true,
) {
    std::result::Result::Ok(value) => value,
    std::result::Result::Err(error) => return std::result::Result::Err(error),
};

let store = match kb_store::PostgresStore::connect(options).await {
    std::result::Result::Ok(value) => value,
    std::result::Result::Err(error) => return std::result::Result::Err(error),
};

Toujours utiliser masked_dsn() dans les diagnostics.

Domaines

  • raw : acquisitions et observations ;
  • Core : transactions, instructions, comptes et contexte normalisés ;
  • decode : ledger, observations décodées et matérialisations ;
  • replay : candidats et résumés bornés.

Migrations

Les migrations sont idempotentes et ordonnées. Une nouvelle migration ne doit pas modifier rétroactivement une migration déjà publiée.

Repositories

Les traits publics séparent le contrat de limplémentation PostgreSQL. Les opérations de lecture utilisent des filtres et paginations bornés.

Diagnostics

  • health snapshot ;
  • migration snapshot ;
  • backend diagnostics ;
  • diagnostics des tables raw, Core et decode ;
  • validation des noms de tables.

Invariants

  • aucune donnée canonique ne doit être dupliquée sans justification ;
  • les écritures rejouables doivent être idempotentes ;
  • la progression de campagne doit rester cohérente avec les lignes effectivement traitées ;
  • les requêtes dynamiques nacceptent que des identifiants validés ;
  • les erreurs PostgreSQL restent distinctes des erreurs de contrat.

Références

  • docs/architecture/STORAGE_ARCHITECTURE.md ;
  • kb-store/USAGE.md ;
  • kb-store/README.md.