Async processing
Doing work outside the request that triggered it, with a guarantee that it eventually happens — deferred jobs, retries, and periodic work. Distinct from messaging, which is about telling other systems.
Overview
Built in: the transactional event queue, persistent by default, stores a queued call, an inbound message or a scheduled task in the cds.outbox.Messages table inside the business transaction and dispatches it after commit, retries a failure with exponentially increasing delays, and moves it to the dead letter queue after a configurable number of attempts. Outbox, inbox and scheduled tasks are the three patterns on that one table; cds.spawn is the in-memory alternative that persists nothing. Outboxing a service by configuration and the #succeeded and #failed callbacks are Node.js only, the callbacks alpha.
Not covered: At the table. A dead letter stays in cds.outbox.Messages for a person to revive or discard, through a query or a service the application defines; there is no console, no priority and no rate control, and Java has no callbacks yet. That is what the entries here add on top.
Artifacts
Content
Show 2 more
Seen working
Details
Coverage
For your agent
- Ref
capability:async-processing- JSON
- /capabilities/async-processing.json
- MCP
- Connecting an agent