Delivery State Machine
Integration delivery retries are now durable and database-driven.
Implemented:
- Explicit delivery
state:pending,delivering,delivered,retry_scheduled,failed,dead_lettered. - Retry work is persisted in
integration_outbox. - Attempts are persisted in
integration_delivery_attemptswith timing, HTTP status, retryability, correlation, and event references. - Worker-service polls due retry rows from Postgres.
- Claimed rows use
locked_byandlocked_untilto avoid duplicate worker execution. - Dead-letter transitions are audited.
Current gaps:
- DLQ browser tooling is planned.
- Tenant discovery for retry polling is configured for local/runtime deployment and should later come from the tenant registry/service-account model.
- Kubernetes
SecretProviderimplementation exists. External secret sync/RBAC precision and direct Vault/AWS/Azure/GCP providers remain future work.
Source architecture note: docs/architecture/delivery-state-machine.md.