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/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Applications, services, scenarios et control plane
@@ -22,7 +22,7 @@ Les décisions portent sur :
- futur IPC ;
- futur orchestrateur/global app uniquement comme idées à conserver.
# Principe général des applications
## Principe général des applications
Une application KSP est une interface et une couche de composition.
@@ -47,13 +47,13 @@ Elle ne doit pas réimplémenter :
- lifecycle interne d'un worker/job ;
- logique de pipeline réutilisable.
# Applications de validation par couche
## Applications de validation par couche
KSP peut ajouter une petite application spécialisée à la fin d'une couche RAW ou CORE lorsque cela permet de valider et exploiter réellement la couche avant de passer à la suivante. Ces applications lisent les contrats KSP et ne recopient pas les processors dans Tauri.
À partir des vertical slices Program, les applications restent attachées aux besoins réels : demos de scenarios pour l'exécution et Market Desk pour les projections de marché.
# Priorité aux applications spécialisées
## Priorité aux applications spécialisées
KSP ne planifie pas actuellement de cockpit desktop global.
@@ -85,7 +85,7 @@ Les noms exacts des managers workers seront décidés avec les premières applic
Une future application globale de contrôle/exploitation est considérée comme un produit futur attendu, mais elle n'est pas un livrable du roadmap actuel et ne doit pas influencer prématurément les contrats.
# Applications spécialisées et dépendances directes
## Applications spécialisées et dépendances directes
Une application spécialisée peut dépendre directement de la bibliothèque KSP correspondant à sa responsabilité.
@@ -105,7 +105,7 @@ ksp-app-store-desk
Les couches N1N4 expriment des responsabilités et une direction de dépendances ; elles n'imposent pas de traverser toutes les couches intermédiaires.
# Tauri
## Tauri
Les applications desktop Tauri restent des adapters/interfaces.
@@ -127,7 +127,7 @@ Une application Tauri peut devoir intégrer un plugin/framework de tracing, mais
En distribution, une application Tauri KSP ne dépend pas du checkout source ni du CWD du launcher. Les resources Config/Schemas nécessaires sont embarquées dans le bundle ; Tauri résout leur racine immutable et `ksp-config-lib` prépare une racine KSP user-writable commune avant le bootstrap applicatif. Les Config utilisateur existantes sont conservées, les schemas package-owned sont resynchronisés et `.env` reste une ressource locale writable jamais embarquée. Cette adaptation de packaging ne transfère ni ownership Config ni accès filesystem au frontend.
# Workers comme services indépendants
## Workers comme services indépendants
Les workers KSP doivent pouvoir fonctionner comme **services/processus indépendants**.
@@ -143,7 +143,7 @@ Les workers ne forment pas un pipeline process-to-process couplé.
Ils synchronisent leur data plane via les niveaux durables du Store.
## Packaging préféré
### Packaging préféré
Pour éviter de séparer artificiellement logique réutilisable et executable dans deux packages lorsqu'il n'y a pas encore de besoin, la direction préférée est :
@@ -171,7 +171,7 @@ Il ne duplique pas le pipeline ni la logique de worker contenue dans la cible bi
Une séparation future en packages distincts `*-lib` / executable n'est introduite que si un besoin concret le justifie.
# Responsabilité du binaire worker
## Responsabilité du binaire worker
Le binaire autonome peut notamment :
@@ -186,7 +186,7 @@ Le binaire autonome peut notamment :
Il ne contient pas de logique de processing qui ne serait pas réutilisable depuis la bibliothèque worker.
# Indépendance des workers
## Indépendance des workers
Aucun worker ne dépend directement d'un autre worker concret.
@@ -222,7 +222,7 @@ Les notifications accélèrent le réveil mais ne créent pas une connexion fonc
Cette indépendance permet arrêt, restart ou mise à jour d'un worker sans arrêter volontairement les autres.
# Ordre global de démarrage
## Ordre global de démarrage
Aucun ordre global strict de démarrage n'est figé dans cette prerelease.
@@ -234,11 +234,11 @@ La robustesse recherchée est :
Un futur manager/orchestrateur pourra choisir un ordre pratique de démarrage/arrêt, mais cette policy n'est pas inscrite dans les contrats worker.
# Data plane et control plane
## Data plane et control plane
KSP distingue explicitement deux plans.
## Data plane
### Data plane
Le data plane transporte/persiste les données Solana et les résultats de processing :
@@ -253,7 +253,7 @@ avec notifications de données persistées comme wake-up.
Les workers ne s'échangent pas leurs payloads via le control plane.
## Control plane
### Control plane
Le control plane sert à :
@@ -276,7 +276,7 @@ future manager/orchestrator
Le control plane n'est pas le data plane.
# `ksp-worker-control-lib`
## `ksp-worker-control-lib`
`ksp-worker-control-lib` reste la bibliothèque de gouvernance réutilisable au-dessus de `ksp-worker-api`.
@@ -297,7 +297,7 @@ Elle ne connaît pas :
- Tauri ;
- les types propriétaires d'un worker concret au-delà des contrats publics nécessaires.
# Worker local et worker distant
## Worker local et worker distant
La sémantique de `ksp-worker-api` ne doit pas dépendre du fait qu'un worker soit appelé :
@@ -323,7 +323,7 @@ Conceptuellement :
Le type exact de proxy/transport n'est pas défini maintenant.
# IPC
## IPC
Le besoin d'IPC existe naturellement dès qu'une app manager doit piloter un worker autonome.
@@ -345,7 +345,7 @@ Le premier manager/service réel devra choisir un mécanisme IPC adapté et pour
Le choix du mécanisme exact est reporté à la release fonctionnelle concernée.
# Jobs
## Jobs
Les jobs restent distincts des workers.
@@ -357,7 +357,7 @@ Le fait qu'un worker soit un process/service indépendant ne force pas les jobs
Le packaging/exécution des jobs sera déterminé avec les premiers jobs réels.
# Scenarios : logique dans la bibliothèque
## Scenarios : logique dans la bibliothèque
La source de vérité d'un scenario est toujours :
@@ -387,7 +387,7 @@ Elle peut être consommée par :
- futur CLI/tool ;
- CI/integration environment lorsque pertinent.
# Pas de `ksp-scenario-api` actuellement
## Pas de `ksp-scenario-api` actuellement
Aucun trait universel de scenario n'est imposé.
@@ -395,7 +395,7 @@ Les premières implementations utilisent une norme documentaire commune définie
Une API commune ne sera créée que si plusieurs scenarios réels révèlent un contrat réutilisable qui apporte plus que des conventions.
# Applications desktop demo de scenarios
## Applications desktop demo de scenarios
Convention retenue :
@@ -429,7 +429,7 @@ KSP capabilities
L'app ne construit pas un scenario parallèle.
# Scenarios et execution policy
## Scenarios et execution policy
Une crate scenario peut fournir une implémentation de `ksp-execution-policy-api` adaptée à son environnement.
@@ -443,7 +443,7 @@ Exemple Devnet :
Cette policy appartient au scenario, pas à `ksp-program-lib`.
# Applications worker spécialisées
## Applications worker spécialisées
Une application spécialisée de worker peut être créée lorsqu'elle est utile pour développer/tester/exploiter ce service.
@@ -466,7 +466,7 @@ independent worker service
La nomenclature précise des apps sera fixée à la première implémentation pour éviter de multiplier prématurément les packages.
# Configuration desired vs effective
## Configuration desired vs effective
La configuration persistée/résolue et la configuration effectivement appliquée sont deux faits distincts.
@@ -483,7 +483,7 @@ worker status
Une app spécialisée peut éditer une configuration puis demander son application, mais ne doit pas considérer l'écriture du document comme la preuve que le worker l'a appliquée.
# Market Desk progressive
## Market Desk progressive
Après les groupes Meteora/Raydium/Pump/Orca, KSP prévoit une première application spécialisée candidate `ksp-app-market-desk`.
@@ -493,7 +493,7 @@ Après Jupiter/OKX, la même application est enrichie avec routes, legs, DEX imp
Les OHLC sont matérialisés dans SPECIALIZED et consommés par l'application; ils ne sont pas recalculés à partir de tout l'historique lors de chaque rendu.
# Future orchestrator
## Future orchestrator
Un orchestrateur global pourra devenir utile lorsque plusieurs services/managers/jobs devront être coordonnés.
@@ -509,7 +509,7 @@ Sa responsabilité éventuelle devra rester control plane :
Il ne doit jamais devenir un nouveau propriétaire de Program, Store, transport ou materialization.
# Future global application
## Future global application
Une application globale d'exploitation/contrôle est attendue à terme.
@@ -528,7 +528,7 @@ Avant elle, KSP doit disposer d'applications spécialisées et demos permettant
Son nom et son scope ne sont pas définis.
# Graphe synthétique
## Graphe synthétique
```text
specialized desktop app
@@ -551,7 +551,7 @@ transport -> RAW -> CORE -> DECODE -> SPECIALIZED
Aucun payload de processing n'a besoin de transiter via l'UI/control plane.
# Questions laissées ouvertes
## Questions laissées ouvertes
Les premières implementations concernées devront fixer :