BC-066C — Dormant Projection / Realtime Rationalization¶
Status: HISTORICAL
For the current architecture, see: ./dependances.md, ../runtime/overview.md.
Projet : /mnt/data/cmonchoix-platform
Branche : bc-048-samsung-wearable-enrichment
Verdict¶
BC-066C est fermable.
Option retenue : Option A — audit/tests/docs only.
Je n’ai retiré aucun composant de production, parce qu’aucun n’est “mort prouvé” avec un niveau de confiance suffisant pour une suppression sûre dans cette tranche.
Architecture avant / après¶
Avant :
- composants déjà dormants ;
- statut partiellement documenté ;
- tests surtout mécaniques ;
- pas de décision explicite entre placeholder et orchestration retained.
Après :
- statut de chaque composant explicité ;
- absence d’entrypoint runtime verrouillée ;
- sémantique queue/worker/registry/projection caractérisée ;
- décision BC-066D préparée sans activer la chaîne.
Inventaire Projection¶
| Classe | Rôle | Consumer prod | Consumer test | Entry point | Verdict |
|---|---|---|---|---|---|
ProjectionEngine |
moteur placeholder de replay/dispatch | ProjectionCatalogWiring interne |
oui | ProjectionCatalogWiring::build() interne |
placeholder |
ProjectionCatalogWiring |
helper de wiring/bridge | aucun entrypoint live prouvé | oui | interne uniquement | compatibility surface |
EventSubscriberRegistry |
registre d’abonnés ordonné | RealtimeCatalogRebuilder |
oui | aucun live | orchestration retained |
Inventaire Realtime¶
| Classe | Rôle | Consumer prod | Consumer test | Entry point | Verdict |
|---|---|---|---|---|---|
AsyncEventQueue |
queue mémoire FIFO | AsyncWorker |
oui | aucun live | placeholder |
AsyncWorker |
consommateur unitaire de queue | aucun live prouvé | oui | aucun live | active dormant |
RealtimeCatalogRebuilder |
orchestration ranking → intelligence | AsyncWorker |
oui | aucun live | orchestration retained |
Graphe réel¶
| Source | Target | Relation | Prouvée | Runtime live |
|---|---|---|---|---|
ProjectionCatalogWiring |
ProjectionEngine |
internal new() |
oui | non |
ProjectionCatalogWiring |
CatalogProjectionWriter |
dispatch(product.created) |
oui | non |
AsyncWorker |
AsyncEventQueue |
pop() |
oui | non |
AsyncWorker |
RealtimeCatalogRebuilder |
process() / boot() |
oui | non |
RealtimeCatalogRebuilder |
EventSubscriberRegistry |
subscribe() + dispatch() |
oui | non |
RealtimeCatalogRebuilder |
CatalogRankingEngine |
rank() |
oui | non |
RealtimeCatalogRebuilder |
CatalogIntelligenceEngine |
rebuild() |
oui | non |
Aucun lien réel prouvé avec EventBridge.
Queue¶
| Capability | Present | Placeholder | Production-ready |
|---|---|---|---|
| FIFO | oui | non | non |
| persistence | non | oui | non |
| multi-process | non | oui | non |
| retry/ack/visibility timeout | non | oui | non |
| serialization | non | oui | non |
Worker¶
| Cas | Pop | Process | Result |
|---|---|---|---|
| queue vide | 1 tentative | non | retour immédiat |
DomainEvent |
1 item | process() |
rebuilder exécuté |
objet non DomainEvent |
1 item | boot() seulement |
aucun write direct |
Rebuilder¶
| Étape | Input | Dependency | Write |
|---|---|---|---|
boot() |
none | EventSubscriberRegistry |
non |
process() |
DomainEvent |
registry | indirect uniquement |
handleProductEvent() |
event objet | ranking + intelligence | indirect via repository |
Classification finale¶
| Component | Keep | Remove | Defer | Reason |
|---|---|---|---|---|
ProjectionEngine |
oui | non | oui | placeholder encore utile pour tests et wiring |
ProjectionCatalogWiring |
oui | non | oui | surface de compat/wiring minimale |
EventSubscriberRegistry |
oui | non | non | orchestrateur cohérent, testé |
AsyncEventQueue |
oui | non | oui | placeholder FIFO testé, pas durable |
AsyncWorker |
oui | non | oui | futur runtime candidate, pas d’entrypoint live |
RealtimeCatalogRebuilder |
oui | non | oui | orchestration cohérente mais dormante |
Décision préparée pour BC-066D¶
BC-066D devra choisir entre :
- retrait assumé de la chaîne dormante ;
- maintien dormant durable ;
- activation future via une vraie décision runtime.
BC-066C ne tranche pas ce choix.
Note postérieure BC-066D¶
Le choix est maintenant explicite :
- décision retenue :
KEEP_DORMANT - la chaîne reste non opérationnelle
- aucune suppression n’est décidée à ce stade
- une activation future exige une BC dédiée avec design opérationnel complet
Note postérieure BC-066E¶
BC-066E transforme cette décision en certification finale :
- inventaire exact verrouillé ;
- aucune activation cachée détectée ;
- fermeture BC-066 autorisée.