BC-067C — Dormant Runtime Reduction¶
Status: HISTORICAL
For the current architecture, see: ./dependances.md, ../runtime/overview.md, ./bc-067d-reference-core-final-certification.md.
Projet : /mnt/data/cmonchoix-platform
Branche : bc-048-samsung-wearable-enrichment
Verdict¶
BC-067C est fermable.
Résultat¶
La chaîne dormante a été réduite à un noyau synchrone de référence :
CatalogRankingEngine
→ CatalogIntelligenceRebuildService
→ CatalogIntelligenceEngine
→ CatalogRepositoryInterface
Aucun entrypoint runtime n’a été ajouté.
Architecture avant / après¶
Avant :
AsyncEventQueue
→ AsyncWorker
→ RealtimeCatalogRebuilder
→ EventSubscriberRegistry
→ CatalogRankingEngine
→ CatalogIntelligenceEngine
→ CatalogRepositoryInterface
ProjectionCatalogWiring
→ ProjectionEngine
→ CatalogProjectionWriter
Après :
CatalogRankingEngine
→ CatalogIntelligenceRebuildService
→ CatalogIntelligenceEngine
→ CatalogRepositoryInterface
Noyau conservé¶
CMonChoix\Platform\Application\Catalog\CatalogIntelligenceRebuildServiceCMonChoix\Application\Catalog\CatalogIntelligenceEngineCMonChoix\Application\Catalog\Ranking\CatalogRankingEngineCMonChoix\Platform\Domain\Catalog\Repository\CatalogRepositoryInterface
Service extrait¶
Le service synchrone conservé est :
CMonChoix\Platform\Application\Catalog\CatalogIntelligenceRebuildService
Responsabilité :
- recevoir un
productId - recevoir une liste d’offres
- appeler
CatalogRankingEngine::rank() - transmettre les offres triées à
CatalogIntelligenceEngine::rebuild()
Il ne connaît pas :
DomainEventEventSubscriberRegistryAsyncEventQueueAsyncWorkerRealtimeCatalogRebuilder- plugin / runtime / cron / worker / HTTP / CLI
Classes supprimées¶
CMonChoix\Application\Projection\ProjectionEngineCMonChoix\Application\Projection\ProjectionCatalogWiringCMonChoix\Application\Projection\EventSubscriberRegistryCMonChoix\Application\Realtime\Async\AsyncEventQueueCMonChoix\Application\Realtime\Async\AsyncWorkerCMonChoix\Application\Realtime\RealtimeCatalogRebuilder
Wrappers¶
- aucun wrapper conservé
La préférence BC-067C était de supprimer RealtimeCatalogRebuilder si aucun consumer réel n’existait encore.
La preuve de non-usage étant complète sur le périmètre live, le wrapper temporaire n’était plus nécessaire.
Flow utile préservé¶
| Step | Input | Dependency | Side effect | Must preserve |
|---|---|---|---|---|
| 1 | offers |
CatalogRankingEngine::rank() |
tri des offres | oui |
| 2 | productId, rankedOffers |
CatalogIntelligenceEngine::rebuild() |
write indirect via repository | oui |
Compatibilité¶
| API/FQCN | Before | After | Compatible |
|---|---|---|---|
CatalogIntelligenceEngine |
présent | présent | oui |
CatalogIntelligenceRebuildService |
absent | présent | n/a |
ProjectionEngine |
présent | supprimé | non, volontaire |
ProjectionCatalogWiring |
présent | supprimé | non, volontaire |
EventSubscriberRegistry |
présent | supprimé | non, volontaire |
AsyncEventQueue |
présent | supprimé | non, volontaire |
AsyncWorker |
présent | supprimé | non, volontaire |
RealtimeCatalogRebuilder |
présent | supprimé | non, volontaire |
Cette rupture est acceptée car :
- aucun consumer live n’est prouvé ;
- aucune reflection n’est prouvée ;
- aucune serialization n’est prouvée ;
- les usages résiduels étaient limités aux tests et à la documentation historique.
Reflection / serialization¶
- aucune reflection résiduelle prouvée sur les FQCN retirés ;
- aucune serialization résiduelle prouvée ;
- aucun
class_exists()live prouvé sur ces classes.
Performance¶
| Flow | Before | After |
|---|---|---|
rank() calls |
1 | 1 |
CatalogIntelligenceEngine::rebuild() calls |
1 | 1 |
| allocations queue | >= 1 | 0 |
| dispatch registry | 1 | 0 |
| overhead worker | oui | non |
Runtime¶
- aucun entrypoint live
- aucun changement plugin WordPress
- aucun changement runtime miroir
- aucun sync runtime
- aucun worker réel
- aucun rebuild réel
- aucun event réel
- aucun write réel
Tests et guards¶
Ajoutés / renforcés :
CatalogIntelligenceRebuildServiceTestDormantRuntimeRemovedFqcnTestDormantRuntimeNoConsumerTestDormantRuntimeNoSerializationTestReferenceCoreBoundaryTest
Supprimés parce qu’ils protégeaient seulement des placeholders retirés :
- tests dédiés à
ProjectionEngine - tests dédiés à
ProjectionCatalogWiring - tests dédiés à
EventSubscriberRegistry - tests dédiés à
AsyncEventQueue - tests dédiés à
AsyncWorker - tests dédiés à
RealtimeCatalogRebuilder
Prochaine étape¶
- BC-067D — certification finale du noyau de référence et fermeture de la trajectoire BC-067
Note postérieure BC-067D¶
BC-067D a confirmé qu’aucun correctif de production supplémentaire n’était nécessaire.
- noyau certifié ;
- FQCN retirés toujours absents ;
- aucun entrypoint live ;
- BC-067 fermée.