PD-180-CONFRONTATION-STEP5

Confrontation sauvegardee. Voici le resume :

12 convergences confirmees — les 4 documents sont bien alignes sur les invariants, le modele de donnees, la signature HMAC, les variantes payload, la sequence retry, le SSRF, les machines d'etats, l'append-only, le quota, le secret et le perimetre.

5 divergences identifiees :

ID Severite Sujet
DIV-01 Bloquant Rate limit : la spec dit mise en attente BullMQ, le plan prevoit aussi un 429 HTTP — contradiction interne
DIV-02 Bloquant Route replay POST /webhooks/:id/replay/:eventId scope a un webhook, mais la spec dit broadcast vers tous les webhooks actifs abonnes
DIV-05 Bloquant Rate limit fanout : checkAndIncrement appele 1 fois avant de connaitre N webhooks, mais la spec compte N intentions
DIV-03 Mineur Limite 4096 bytes metadata absente du plan et des code contracts
DIV-04 Mineur ERR-12 : ambiguite C4 (detection) vs C6 (creation intention FAILED)

7 zones d'ombre, dont 2 prioritaires : transport du tenantId dans les evenements EventEmitter2 (ZO-01), et comportement lors de la mise a jour des event_types avec des livraisons en cours (ZO-05).

Recommandation : rework necessaire sur les 3 divergences bloquantes avant soumission a la gate 5.