v0.0.3-pre.007
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/IDEAS.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Idées à explorer
|
||||
|
||||
@@ -228,20 +228,50 @@ Le journal D3 doit accepter les outputs de materializers officiels ou externes s
|
||||
|
||||
### Backlog et checkpoints
|
||||
|
||||
**Status :** À explorer en `pre.007`
|
||||
**Status :** Transférée vers une décision/règle
|
||||
|
||||
Les notifications restent des wake-ups. Définir comment chaque worker/job interroge le Store pour retrouver les inputs non traités par une version donnée, avec pagination, batching, reprise et concurrence.
|
||||
Les processing outcomes par processor/version/capability constituent la vérité du backlog. Les cursors sont des optimisations et les jobs historiques conservent en plus leurs checkpoints de source.
|
||||
|
||||
### Jobs de replay
|
||||
|
||||
**Status :** À explorer en `pre.007`
|
||||
**Status :** Transférée vers une décision/règle
|
||||
|
||||
Prévoir des jobs séparés pour D1 -> D2, D2 -> D3 et D3 -> D4 plutôt qu'un replay monolithique obligatoire.
|
||||
|
||||
Les noms définitifs ne sont pas encore retenus.
|
||||
Trois jobs distincts sont retenus : `ksp-job-replay-core`, `ksp-job-replay-generic-materialization` et `ksp-job-replay-domain-projection`. Ils réutilisent les pipelines spécialisés correspondants.
|
||||
|
||||
### Notification backend de référence
|
||||
|
||||
**Status :** À explorer en `pre.007`
|
||||
**Status :** Transférée vers une décision/règle
|
||||
|
||||
PostgreSQL LISTEN/NOTIFY est un candidat naturel pour la première implémentation de signal de réveil, mais le contrat doit rester indépendant du mécanisme et le Store reste la source de vérité.
|
||||
PostgreSQL LISTEN/NOTIFY est retenu comme mécanisme initial de référence de wake-up, combiné à un periodic polling du backlog. Le Store reste la source de vérité.
|
||||
|
||||
## Workers / jobs — questions d'implémentation restantes
|
||||
|
||||
### Claim/lease PostgreSQL
|
||||
|
||||
**Status :** À explorer avec la première implémentation Store/worker
|
||||
|
||||
Définir le schéma SQL, la durée/renouvellement de lease et la technique PostgreSQL exacte permettant plusieurs instances concurrentes sans bloquer définitivement un input après crash.
|
||||
|
||||
### Processing outcomes
|
||||
|
||||
**Status :** À explorer avec D2/D3/D4 réels
|
||||
|
||||
Fixer les noms/types exacts et distinguer Produced, NoOutput, NotApplicable, Unsupported et failure déterministe sans transformer des situations normales en erreurs.
|
||||
|
||||
### Contexte stateful des projectors
|
||||
|
||||
**Status :** À explorer avec la première projection nécessitant un état existant
|
||||
|
||||
Le Store est interrogé par le pipeline/worker puis le contexte est injecté au `DomainProjector`. Définir comment le projector décrit les données de contexte nécessaires sans dépendre du backend.
|
||||
|
||||
### Job pause/resume
|
||||
|
||||
**Status :** À explorer avec `ksp-job-api`
|
||||
|
||||
Checkpoint/restart est nécessaire pour backfill/replay. Déterminer si pause/resume doit être une capability générique ou rester spécifique aux jobs qui la supportent.
|
||||
|
||||
### Télémétrie opérationnelle
|
||||
|
||||
**Status :** À explorer
|
||||
|
||||
Backlog count, oldest pending age, processing rate et failure rate doivent être observables. Décider plus tard si health/status + logging suffisent ou si une API/metrics exporter dédiée devient nécessaire.
|
||||
|
||||
Reference in New Issue
Block a user