AI agents: use the documentation index at llms.txt to locate machine-readable pages. This section is indexed by https://docs.particular.net/transports/llms.txt. The markdown version of this page is served as plain text. An MCP server at /mcp serves the same content via the search_docs and read_doc tools; it is read-only and needs no credentials. Markdown versions of documentation pages are available by appending .md to the page URL. Directory URLs use index.md. They are served as text/plain because some retrieval backends reject text/markdown.

SQL Server Native Delayed Delivery

Target Version:
NServiceBus 10.x

The SQL Server transport supports delayed delivery by storing the delayed messages in a dedicated table. When a message delay time lapses, the transport moves messages from the sending endpoints to the destination queues in batches. This means that the exact delivery time for a delayed message can be a bit later.

Configuration

The settings described in this section have default values as shown in the snippets. The settings can be fine-tuned to fit a particular system's needs, e.g., messages are checked for expiration more frequently, resulting in more accurate delivery times.

Table suffix

Delayed messages are stored in a dedicated table named sending-endpoint-name.suffix. The suffix is set to Delayed by default, but can be overwritten using:

transport.DelayedDelivery.TableSuffix = "Delayed";

Batch size

The SQL Server transport processes delayed messages in batches. Each time the transport queries for messages, it will use the batch size setting to limit the number of messages to be processed. This batch size is set to 100 by default, but can be configured using:

transport.DelayedDelivery.BatchSize = 100;

Backwards compatibility

When upgrading to a version of the transport that supports native delayed delivery, it is safe to run a set of endpoints that include both endpoints using native delayed delivery as well as the timeout manager:

  • Endpoints with native delayed delivery can send delayed messages to endpoints using the timeout manager.
  • Endpoints with native delayed delivery can continue to receive delayed messages from endpoints using timeout manager.