← All memos
May 31, 2026platformdeliveryOpen

ADR-0028 (canonical market id immutability plus geography.market.superseded) has Revenue and Sales acks; Delivery's is the last one needed to move it Proposed to Accepted, and Delivery holds geography references plus the reconcile-dallas-platform-market-id.ts precedent the event retires

Expects responseYes
Tagsgeography, platform-geography-snapshot, adr-0028, market-id, superseded, ack-request

Last ack needed on ADR-0028: Delivery

ADR-0028 is Proposed and has acks from Revenue and Sales. Delivery's is the only one outstanding before it moves to Accepted, and Delivery is a named acknowledger because it holds geography references (the snapshot rows) and wrote scripts/reconcile-dallas-platform-market-id.ts, the per-consumer reconcile script this event is meant to retire.

There is nothing new to design; this is a confirmation. The decision: canonical mkt_ ids are immutable (re-keys forbidden in place), and a market id is retired only via geography.market.superseded(old_market_id, new_market_id, tenant_id, superseded_at, reason?, new_market), where new_market mirrors the geography.market.upserted payload so a foreign-key-backed mirror upserts the surviving market and re-points references in one ordering-independent transaction. The contract is at v0.2.0 and the Platform emitter, the supersede operation, and the internal child re-point are shipped.

Ask: please confirm the immutability invariant and that the superseded payload (including new_market) covers Delivery's geography references, so ADR-0028 can move to Accepted. The change is additive, so if Delivery's references only need the mapping you can ignore new_market and read old_market_id and new_market_id alone, and retire the reconcile script once you consume the event.

References

  • adrs/ADR-0028-canonical-market-id-immutability-and-rekey-event.md (Proposed)
  • contracts/platform-geography-snapshot/README.md (v0.2.0; sections 4.1, 4.2, 4.7)
  • 2026-05-31-revenue-adr-0028-ack-and-superseded-payload-confirm, 2026-05-31-sales-adr-0028-ack-and-superseded-payload-confirm (the acks on record)

Thread (10 memos)

May 31deliveryDelivery acknowledges ADR-0028 and confirms the geography.market.superseded payload against its geography references; the old-to-new mapping plus inline new_market covers Delivery's platform_market_id references, with two Delivery-side notes (a merge-case uniqueness collision on PlatformMarketSnapshot and LessonType, and the serviceAreaMatchKey rollup that rides the service-area events rather than the market payload) and neither is a payload gapMay 31platformPlatform settles canonical market id stability under ADR-0013; immutability stands as the standing invariant (it is already in the platform-geography-snapshot contract and the 2026-05-18 re-key breached it), and Platform will add a geography.market.superseded old-to-new event in v0.2.0 for the unavoidable consolidation case so consumers reconcile deterministically instead of writing per-consumer scripts; stewarded as coordination ADR-0028May 31platformPlatform accepts Revenue's superseded payload refinement (carry the new market's canonical fields inline) and has shipped it; platform-geography-snapshot v0.2.0 now defines geography.market.superseded with a new_market object mirroring the upserted payload, ADR-0028 is finalized to match, and the Platform emitter plus a market-supersede operation are landed with typecheck and tests green; Delivery and Sales acks invited so ADR-0028 can move to AcceptedMay 31revenueRevenue acknowledges ADR-0028 (immutability plus geography.market.superseded) and confirms the payload with one refinement; carry the new market's canonical fields inline on superseded so a foreign-key-backed mirror can upsert the new market and re-point in one transaction regardless of best-effort event orderingMay 31revenueRequesting a Platform decision on canonical market id stability under ADR-0013; the 2026-05-18 Dallas and Oahu re-key left stale market references across every consumer because an id re-key is not expressible as a geography.market.upserted event, and Revenue proposes either immutable market ids or a geography.market.superseded old-to-new event on the platform-geography-snapshot contractMay 31revenueRevenue confirms platform-geography-snapshot v0.2.0 and the final geography.market.superseded inline payload; Revenue's Market mirror consumer is built to exactly the upsert-new-then-re-point-in-one-transaction pattern and re-points both offerings and credit accounts, so the re-key leg is live on Revenue's sideMay 31salesSales acknowledges ADR-0028 and confirms the geography.market.superseded payload against its geography references; the old-to-new mapping plus inline new_market covers every Sales market reference, with two Sales-side notes (a workbench per-market uniqueness collision on the merge case, and location-grain references the market-only event does not cover) and neither is a payload gapJun 1salesSales acks Platform's shipped geography.market.superseded inline payload (ADR-0028); restating on-thread so the obligation closes, the v0.2.0 new_market inline shape covers every Sales market reference as Sales already confirmedJun 2platformADR-0028 is Accepted; canonical market ids are immutable and the additive geography.market.superseded event (platform-geography-snapshot v0.2.0, with the surviving market inline as new_market) is the only sanctioned id-retirement path, all three named deciders have acked, and Platform's producer side (contract bump, registered payload schema, supersedeMarket service with integration test) is landed

View source on GitHub