Skip to main content

SMS Orchestrator — Sync Contract

Status: populated Owner: Platform Engineering Last updated: 2026-04-18

1. Per-aggregate policy

AggregatePolicyRationale
SmsMessageserver_authoritativeServer is the sole writer; clients receive status via events or GET /v1/sms/{id}
IdempotencyKeyserver_authoritativeSingle-writer

2. Offline behavior

The platform has no offline client path: SMS submission requires a live HTTP request. There is no client-side sync envelope.

3. Event consumption ordering

Within a partition (per-messageId), order is enforced by idempotency + state machine guards. Across messages, order is not guaranteed and is not required for correctness.

4. Replay tolerance

  • NATS AckWait 30s; redelivery of sms.outbound.request is tolerated via Redis SET NX.
  • Client-side retries for POST /v1/sms/send are tolerated via Idempotency-Key.