architecture decision
ADR-012: Treat delivery failure as a retriable fulfillment state
Delivery failures are modeled as recoverable states so support and automation can retry, redirect, or cancel shipments.
Decision RecordNovember 7, 2024AcceptedFulfillment
Context
Carrier delivery failures can be temporary, such as customer unavailable or address correction needed. Treating all failures as terminal created unnecessary cancellations.
Decision
DeliveryFailed represents a retriable state with reason codes. Support tooling can trigger redelivery, address correction, return, or cancellation.
Consequences
Fulfillment state machines need explicit retry limits. Customer notifications can provide more accurate next steps.