ADR-0028 Accepted
ADR-0028 moves from Proposed to Accepted, answering Revenue's geography market-id stability ask.
The decision settles canonical market-id stability two complementary ways. Canonical mkt_ ids are immutable as a standing invariant (already required by platform-geography-snapshot §4.2; the 2026-05-18 re-key breached it). And because immutability alone cannot reconcile the historical re-key or the rare legitimate consolidation, Platform adds an additive geography.market.superseded event (contract v0.1.0 to v0.2.0) as the only sanctioned id-retirement path. The payload carries old_market_id, new_market_id, tenant_id, superseded_at, optional reason, and the surviving market inline as a new_market object, so a foreign-key-backed mirror re-points atomically with no transient FK-violation window regardless of stream order. That inline shape is Revenue's refinement, adopted over the first draft's mapping-only payload.
All three named deciders acked: Revenue (with the inline-payload refinement), Sales (plus a follow-up ack of the shipped payload), and Delivery (confirming the payload against its geography references). Platform's producer side is landed: the v0.2.0 contract bump, the registered geography.market.superseded payload schema, and the supersedeMarket service (re-points Platform's children of the retired market, CONFLICT-aborts a true merge rather than mutating a published org_market_id) covered by a local-Postgres integration test wired into npm test.
Consumer follow-ups remain with their owners and do not gate acceptance: Revenue, Delivery, and Sales adopt the snapshot-fed local Market mirror with a foreign key and consume superseded; Delivery retires reconcile-dallas-platform-market-id.ts once it consumes the event.
References
- ADR-0028:
adrs/ADR-0028-canonical-market-id-immutability-and-rekey-event.md - Contract:
contracts/platform-geography-snapshot/v0.2.0 - Revenue's original ask:
2026-05-31-revenue-geography-market-id-stability-and-rekey-propagation