v0.2.6-rel.001

This commit is contained in:
2026-08-22 14:16:31 +02:00
parent 79fee574d9
commit 3c9c1d1349
32 changed files with 428 additions and 279 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Acquisition, workers, jobs et pipelines spécialisés
@@ -33,9 +33,9 @@ persistence
À partir de DECODE, les processors/jobs/workers/scenarios sont introduits **avec le groupe Program concerné**, en vertical slice, au lieu de créer à l'avance une grande flotte générique de workers de décodage/materialisation sans programme réel.
# RAW
## RAW
## Pipeline RAW ingestion
### Pipeline RAW ingestion
Concept :
@@ -59,7 +59,7 @@ Une crate spécialisée `ksp-pipeline-raw-ingestion-lib` peut être introduite l
Elle ne choisit pas le provider réseau et ne pilote pas le range historique.
## `ksp-job-backfill`
### `ksp-job-backfill`
Le premier backfill historique appartient à la couche RAW :
@@ -83,7 +83,7 @@ Le job :
- n'effectue aucun décodage Program ;
- n'écrit pas directement des faits CORE/DECODE/SPECIALIZED.
## Worker RAW live
### Worker RAW live
Le worker live futur :
@@ -113,9 +113,9 @@ Sa hot reconfiguration peut concerner selon le transport :
La configuration desired/effective reste distinguée lorsqu'une reconfiguration est asynchrone.
# CORE
## CORE
## Pipeline RAW -> CORE
### Pipeline RAW -> CORE
La normalisation CORE est générique Solana :
@@ -139,7 +139,7 @@ CORE normalizer -X-> ksp-materializer-api
`ksp-interface-lib` peut fournir les wires Solana génériques nécessaires à la structure blockchain.
## Job replay CORE
### Job replay CORE
Un job borné peut rejouer :
@@ -155,15 +155,15 @@ D2 CORE
sans redemander les données au réseau.
## Worker CORE
### Worker CORE
Un worker CORE continu peut consommer le backlog RAW nouvellement persisté et produire CORE.
Le Store reste source de vérité du backlog ; les notifications ne sont qu'un wake-up.
# DECODE et SPECIALIZED
## DECODE et SPECIALIZED
## Introduction par groupe fonctionnel
### Introduction par groupe fonctionnel
KSP ne crée pas d'abord un unique « worker decoder de tout Solana » puis tous les materializers plusieurs séries plus tard.
@@ -189,7 +189,7 @@ Puis le même groupe avance vers préparation d'exécution, policy, execution et
Les jobs de replay et workers live correspondants réutilisent les mêmes processors du groupe.
## Ordre fonctionnel
### Ordre fonctionnel
Direction actuelle :
@@ -211,7 +211,7 @@ Solana Core Programs
Un satellite protocolaire reste avec son groupe : Meteora vaults avec Meteora, Pump fee avec Pump, etc.
# Worker API
## Worker API
`ksp-worker-api` reste une lifecycle API générique pour services continus.
@@ -236,7 +236,7 @@ health
Une capability comme `reconfigure` n'est pas imposée à tous les workers.
# Job API
## Job API
`ksp-job-api` reste distinct de Worker API.
@@ -266,7 +266,7 @@ Les types exacts sont décidés à `0.3.3` avec le premier vrai backfill.
Aucune `ksp-job-control-lib` n'est créée sans duplication concrète.
# Backlog, claim et idempotence
## Backlog, claim et idempotence
Pour les processors asynchrones :
@@ -292,7 +292,7 @@ Les notifications ne remplacent jamais le Store.
La sémantique cible reste at-least-once avec idempotence durable, plutôt qu'un faux exactly-once.
# Processing outcomes
## Processing outcomes
Les états exacts seront définis avec le premier processor durable, mais doivent distinguer au minimum les familles conceptuelles :
@@ -303,7 +303,7 @@ Les états exacts seront définis avec le premier processor durable, mais doiven
- unsupported ;
- superseded/replayed lorsque pertinent.
# Reprise après crash
## Reprise après crash
Un worker/job doit reconstruire son état depuis :
@@ -315,7 +315,7 @@ Un worker/job doit reconstruire son état depuis :
La mémoire du processus ne constitue jamais l'unique source de reprise.
# Logging
## Logging
Tous les pipelines/workers/jobs runtime utilisent `ksp-logging-lib`.
@@ -332,9 +332,9 @@ Les événements utiles comprennent notamment :
- reconfiguration desired/effective ;
- erreurs redacted.
# Dépendances de composition
## Dépendances de composition
## RAW backfill
### RAW backfill
```text
ksp-job-backfill
@@ -345,7 +345,7 @@ ksp-job-backfill
-> ksp-logging-lib
```
## RAW worker
### RAW worker
```text
ksp-worker-raw-retriever
@@ -356,7 +356,7 @@ ksp-worker-raw-retriever
-> ksp-logging-lib
```
## CORE replay/worker
### CORE replay/worker
```text
CORE processor
@@ -368,7 +368,7 @@ CORE processor
Pas de Program API.
## Groupes DECODE/SPECIALIZED
### Groupes DECODE/SPECIALIZED
Le composant de composition du groupe peut utiliser :
@@ -382,7 +382,7 @@ ksp-store-api
selon les capacités réellement introduites.
# Questions laissées ouvertes
## Questions laissées ouvertes
- nom final de la crate pipeline RAW si la réutilisation justifie une crate dédiée ;
- nom final du worker RAW ;