AI agents: use the documentation index at llms.txt to locate machine-readable pages. This section is indexed by https://docs.particular.net/samples/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.

Versioning

Component:
NServiceBus
NuGet Package:
NServiceBus 10.x

This sample shows how to handle message schema evolution in a backward-compatible manner. The project consists of a publishing endpoint that has evolved from one version of the schema to the next. The newer subscriber has access to the additional information in the newest version of the schema while the older keeps operating without interruptions.

In this sample, there are two versions of the message contract project, Contracts. The V1 version of the project is referenced by V1.Subscriber, and the V2 version of the project is referenced by Publisher and V2.Subscriber.

The version 1 message:

public interface ISomethingHappened : IEvent
{
    int SomeData { get; set; }
}

The version 2 message inherits from version 1 as shown below, adding an additional property to the message.

public interface ISomethingMoreHappened : ISomethingHappened
{
    string MoreInfo { get; set; }
}

Subscribers have a message handler for the messages from their respective versions.

Publisher is publishing a version 2 message, however, V1.Subscriber receives these messages as well.

Related Articles