Programmable Messaging API · View 16 of 22 · Runtime
Decisions
- A submit that times out with no response is recorded as ambiguous, which is a fact, rather than as a failure, which would be a guess.
- Whether to re-attempt is a per-route policy, not a platform-wide rule, and the policy applied is written onto the message so the decision is auditable.
- A late receipt and a TTL expiry are both appended facts; whichever arrives first decides the terminal state, and neither can be overturned.
Assumptions
- Most carrier protocols offer no idempotency key, so re-attempting risks a duplicate the carrier will also charge for.
- Default policy: do not re-attempt on a route that cannot be queried. Explicitly overridable per route.
Risks
- This is the view a reviewer should argue with: the default protects the recipient from a duplicate and accepts a silent non-delivery, and for some traffic classes that is the wrong way round.