v0.2.6-rel.001
This commit is contained in:
@@ -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 ;
|
||||
|
||||
Reference in New Issue
Block a user