Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Outbox (DynamoDB)

NuGet Package: NServiceBus.Persistence.DynamoDB (2.x)
Target Version: NServiceBus 9.x

Configure the Outbox table

The Outbox data table can be configured via:

var outboxConfiguration = endpointConfiguration.EnableOutbox();
outboxConfiguration.UseTable(new TableConfiguration
{
    TableName = "MyOutboxTable",
    PartitionKeyName = "MyOutboxPartitionKey",
    SortKeyName = "MyOutboxSortKey",
    TimeToLiveAttributeName = "MyOutboxTtlAttribute"
});
When using the same table for Saga and Outbox data, use the shared table configuration API instead.

The Outbox uses time-to-live to ensure cleanup of successfully processed message, therefore, the Outbox table requires a TableConfiguration.TimeToLiveAttributeName value to be set. When installers are enabled, NServiceBus will create the table with the proper time-to-live configuration, otherwise users will need to ensure that the table is properly configured.

Outbox cleanup

When the Outbox successfully processes a message, messages with the same message ID will be ignored (deduplicated) for 7 days by default. To customize the deduplication timespan, use the following API:

var outboxConfiguration = endpointConfiguration.EnableOutbox();
outboxConfiguration.SetTimeToKeepDeduplicationData(TimeSpan.FromDays(14));
Increasing the deduplication timeframe increases the amount of data stored in the Outbox table.

Related Articles