Programmable Messaging API  ·  View 11 of 22  ·  Data

Data Architecture

Four bands by what can be rebuilt, not by what the data is about.

Editable source SVG draw.io All views
Authoritative — cannot be rebuilt from anything else What we did Message ledger Spanner, RPO 0, 90 d hot Receipt stream 13 months, evidence Inbound messages 90 days What we were allowed to do Consent history append-only, 7 years Audit log Bucket Lock, 7 years Configuration — small, strongly consistent, versioned Control plane Route and price table 220 routes Sender-identity registry Jurisdictional rule set no deploy to change Tenancy and entitlement Derived — rebuildable from the authoritative stores Serving projections State projection RTO 2 h to rebuild Client-reference index Analytics marts BigQuery Volatile operational state Route leases RPO 60 s, not authority Route quality counters RPO 60 s Content — shorter life than the record of it Tenant content Message bodies 0 to 90 d, per-tenant keys MMS and rich media CMEK Quarantined payloads 30 days fold fold windows Data Architecture — Ownership, Rebuildability and Retention Data store Risk / gap event / async synchronous Store-no-body mode removes the bottom band entirely and changes nothing above it. v 1.0 · owner Integration Platform Architecture

Decisions

  • Three stores are authoritative — the ledger, the receipt stream and the consent history — and every other store is rebuildable from them.
  • Content has a shorter life than the record of it: deleting a body must not destroy the delivery record or the receipt that proves it.
  • Leases and route-quality counters are explicitly not authoritative, which is what allows them to be fast and lossy.

Assumptions

  • RPO 0 for the authoritative band; RPO 60 s for leases, counters and projections.
  • Consent, compliance verdicts and audit are retained 7 years independently of any tenant retention setting.

Risks

  • Residency pinning removes cross-region failover for the pinned tenant; that is a stated trade, not an oversight.