Application outbox transaction boundaries

Application outbox transaction boundaries An architecture diagram generated by Archify. Application DB · Business mutation · Transaction A: application Application DB Business mutation Application outbox · Pending event + stable key · Transaction A: application Application outbox Pending event + stable key Application relay · Retry until acceptance · Architecture component Application relay Retry until acceptance Ironflow event · Accepted event row · Transaction B: Ironflow Ironflow event Accepted event row Publication outbox · Pending NATS publication · Transaction B: Ironflow Publication outbox Pending NATS publication same commit read committed rows API + stable key same commit Transaction A: application Transaction B: Ironflow Legend Backend Database

Two independent commits

  • • The network call does not join the transactions.
  • • A shared SDK object cannot roll back the application DB.

Relay acknowledgment

  • • Acknowledge the application outbox only after confirmed acceptance.
  • • If acceptance is uncertain, retry with the same idempotency key.