Workflow Outbox Storage
Summary
Shared-kernel outbox records are mapped in WorkflowDbContext. Supported aggregate events become outbox rows before the command save commits.
Outbox persistence
Mapping
Event type, payload, occurrence, status, retry/error, correlation, optional envelope tenant and source fields are stored. Payload uses a structured JSON column. Event identifier is unique; status/time is indexed.
Isolation
No outbox global tenant filter exists. Workflow integration events carry the numeric tenant in their payload while the shared envelope tenant field is not the canonical numeric tenant.
Multi-save behavior
The original command/outbox insert shares one save. Relay status changes use separate saves after publication attempts.
Requires Confirmation
Cleanup, tenant-safe diagnostics, retry limits, poison-message handling and retention require confirmation.
Source References
microservices/src/workflow-service/Infrastructure/WorkflowDbContext.csmicroservices/src/workflow-service/Infrastructure/Persistence.csmicroservices/src/workflow-service/Messaging/OutboxRelayHostedService.csmicroservices/src/workflow-service/Messaging/WorkflowIntegrationEvents.cs
Related Articles
See Also
Keywords
Workflow database, EF Core, Workflow schema.
Revision Information
- Status: Draft
- Last reviewed: 2026-07-20
- Next review: 2026-10-20