Programmable Messaging API  ·  View 17 of 22  ·  Operations

Deployment

Two regions, three zones of stateless work, and one stateful plane that cannot move.

Editable source SVG draw.io All views
Google Cloud — europe-west1 (primary) zone b — stateless Submit and status Cloud Run Attempt executors autoscaled Ingest workers zone c — stateless Submit and status Attempt executors Ingest workers zone d — session plane SMPP session pods GKE StatefulSet Static egress Cloud NAT, allowlisted regional data Message ledger Spanner, multi-region State projection Bigtable Leases and quality Memorystore HA Bodies Cloud Storage, CMEK Google Cloud — europe-west4 (second region) stateless, warm Submit and status RTO 20 min Attempt executors Ingest workers session plane Standby binds second allowlisted range regional data Ledger replica same Spanner instance Projection replica Leases regional, not shared Global Edge and control Global load balancer Cloud Armor, anycast Registry and rules Spanner KMS and Secret Manager Monitoring and logging Carriers egress allowlists per region Residency-pinned tenants no cross-region failover primary failover binds standby binds synchronous Deployment — Two Regions, One Stateful Plane Application we own Security / platform Data store Interface / broker External / third party Risk / gap synchronous failure / alternate two-way Leases are regional on purpose: a shared lease store would put a carrier window behind a cross-region hop. v 1.0 · owner Integration Platform Architecture

Decisions

  • Route leases are regional, never shared: a carrier window enforced across a cross-region hop would put consensus latency inside the interactive budget.
  • The session plane has its own allowlisted egress range per region, so failover means a second set of addresses the carrier has already approved — a contractual task, not a technical one.
  • Residency-pinned tenants deliberately have no cross-region failover; they degrade in place.

Assumptions

  • RTO 5 min in-region for submit and attempt execution; RTO 20 min to serve from the second region for non-resident tenants.
  • The ledger is one multi-region Spanner instance, so registration-class writes pay quorum latency and reads stay local.

Risks

  • Standby binds that are never exercised are not standby; the failover claim is only as good as the last rehearsal.
  • Carrier egress allowlists are changed by email, on their timetable — the slowest dependency in any regional expansion.