v0.3.10-pre.008

This commit is contained in:
2026-09-08 06:43:02 +02:00
parent ab87fd23cd
commit 510adcb49b
21 changed files with 790 additions and 195 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/005-DEPENDENCY_GRAPH.md -->
<!-- version: 25 -->
<!-- version: 26 -->
# Graphe de dépendances KSP
@@ -244,9 +244,9 @@ Une petite policy spécifique peut vivre dans une crate scenario/orchestrateur.
```text
D1 RAW
-> D2 CORE
-> D3 DECODE
-> D4 SPECIALIZED
-> D2 STRUCTURAL
-> D3 DECODED
-> D4 DOMAIN
```
### RAW
@@ -292,7 +292,7 @@ ksp-store-lib
Le Job Backfill et le Worker RAW peuvent donc partager exactement la canonicalisation et le wire sans que la common crate possède le runtime, le Transport ou le backend.
### CORE
### STRUCTURAL
```text
D1 RAW
@@ -301,23 +301,23 @@ D1 RAW
Solana generic normalizer
|
v
D2 CORE
D2 STRUCTURAL
```
Le normalizer CORE peut utiliser `ksp-interface-lib` pour des wires Solana génériques.
Le normalizer STRUCTURAL peut utiliser `ksp-interface-lib` pour des wires Solana génériques.
Interdictions :
```text
RAW -> CORE -X-> ksp-program-api
RAW -> CORE -X-> ksp-program-lib
RAW -> CORE -X-> ksp-materializer-api
RAW -> STRUCTURAL -X-> ksp-program-api
RAW -> STRUCTURAL -X-> ksp-program-lib
RAW -> STRUCTURAL -X-> ksp-materializer-api
```
### DECODE
### DECODED
```text
D2 CORE
D2 STRUCTURAL
|
v
ksp-program-api implementation
@@ -329,19 +329,19 @@ decoded facts
ksp-materializer-api implementation
|
v
D3 DECODE / generic journal
D3 DECODED / generic journal
```
### SPECIALIZED
### DOMAIN
```text
D3 DECODE
D3 DECODED
|
v
specialized projector/materializer
|
v
D4 SPECIALIZED
D4 DOMAIN
```
## Materialization
@@ -386,7 +386,7 @@ ksp-store-postgres-lib -X-> ksp-store-lib
worker/job -X-> ksp-store-postgres-lib
```
La première release Store (`0.3.1`) est RAW-only ; les contrats CORE/DECODE/SPECIALIZED sont ajoutés avec leurs couches. Les consumers runtime ordinaires (jobs, workers, apps) utilisent `ksp-store-lib`; ils ne sélectionnent ni n'importent directement `ksp-store-postgres-lib` ou un autre backend.
La première release Store (`0.3.1`) est RAW-only ; les contrats STRUCTURAL/DECODED/DOMAIN sont ajoutés avec leurs couches. Les consumers runtime ordinaires (jobs, workers, apps) utilisent `ksp-store-lib`; ils ne sélectionnent ni n'importent directement `ksp-store-postgres-lib` ou un autre backend.
## Jobs
@@ -436,7 +436,7 @@ ksp-worker-control-lib
Le worker RAW Transaction n'est pas défini comme « un worker WebSocket » ou « un worker gRPC ». Il reçoit une ou plusieurs stratégies d'acquisition construites au-dessus des façades KSP réellement disponibles ; celles-ci peuvent être alternatives, complémentaires (discovery + hydration), redondantes entre providers ou spécialisées live/catch-up/gap-repair. La transaction canonique reste identifiée indépendamment de la source et chaque acquisition utile conserve sa propre observation/provenance Store.
RAW worker puis STRUCTURAL worker sont introduits à la fin de leur couche respective, lorsque persistence/backlog sont disponibles. Le traitement RAW -> CORE borné est porté par un STRUCTURAL job distinct du service continu. Les workers DECODE/SPECIALIZED sont introduits avec les groupes Program concernés plutôt que tous anticipés en bloc.
RAW worker puis STRUCTURAL worker sont introduits à la fin de leur couche respective, lorsque persistence/backlog sont disponibles. Le traitement RAW -> STRUCTURAL borné est porté par un STRUCTURAL job distinct du service continu. Les workers DECODED/DOMAIN sont introduits avec les groupes Program concernés plutôt que tous anticipés en bloc.
## Apps
@@ -515,7 +515,7 @@ ksp-app-market-desk
-> KSP domain/query contracts
```
Elle consomme les projections SPECIALIZED normalisées ; elle ne dépend pas directement des bibliothèques protocole externes.
Elle consomme les projections DOMAIN normalisées ; elle ne dépend pas directement des bibliothèques protocole externes.
## Scenarios
@@ -536,7 +536,7 @@ L'app demo correspondante reste un adapter UI mince.
## Progression verticale Program
À partir de DECODE :
À partir de DECODED :
```text
wire