Aller au contenu

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\CatalogIntelligenceRebuildService
  • CMonChoix\Application\Catalog\CatalogIntelligenceEngine
  • CMonChoix\Application\Catalog\Ranking\CatalogRankingEngine
  • CMonChoix\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 :

  • DomainEvent
  • EventSubscriberRegistry
  • AsyncEventQueue
  • AsyncWorker
  • RealtimeCatalogRebuilder
  • plugin / runtime / cron / worker / HTTP / CLI

Classes supprimées

  • CMonChoix\Application\Projection\ProjectionEngine
  • CMonChoix\Application\Projection\ProjectionCatalogWiring
  • CMonChoix\Application\Projection\EventSubscriberRegistry
  • CMonChoix\Application\Realtime\Async\AsyncEventQueue
  • CMonChoix\Application\Realtime\Async\AsyncWorker
  • CMonChoix\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 :

  • CatalogIntelligenceRebuildServiceTest
  • DormantRuntimeRemovedFqcnTest
  • DormantRuntimeNoConsumerTest
  • DormantRuntimeNoSerializationTest
  • ReferenceCoreBoundaryTest

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.