This page contains a curated list of NuGet packages commonly used to build a distributed system with NServiceBus and the Particular Service Platform.
Every endpoint references the core package, which provides the messaging, routing, and recoverability behavior that the other packages extend:
Transports
The transport is the messaging infrastructure that carries messages between endpoints. Each endpoint is configured with one. See selecting a transport for help choosing:
- NServiceBus.Transport.AzureServiceBus
- NServiceBus.Transport.AzureStorageQueues
- NServiceBus.AmazonSQS
- NServiceBus.RabbitMQ
- NServiceBus.Transport.SqlServer
- NServiceBus.Transport.PostgreSql
- NServiceBus.Transport.Msmq
- NServiceBus.Transport.IBMMQ
Persistence
Persistence stores saga state and outbox data, and supplies subscription or delayed delivery storage for transports that have no native support for them. See selecting a persister for help choosing:
- NServiceBus.Persistence.Sql
- NServiceBus.Persistence.CosmosDB
- NServiceBus.Persistence.DynamoDB
- NServiceBus.Persistence.AzureTable
- NServiceBus.Storage.MongoDB
- NServiceBus.RavenDB
- NServiceBus.Persistence.ServiceFabric
- NServiceBus.NHibernate
- NServiceBus.Persistence.NonDurable
Hosting
These packages integrate NServiceBus with a .NET generic host, a serverless platform, or the Microsoft. abstractions:
- NServiceBus.Extensions.Hosting
- NServiceBus.Extensions.DependencyInjection
- NServiceBus.Extensions.Logging
- NServiceBus.AzureFunctions.InProcess.ServiceBus
- NServiceBus.AzureFunctions.Worker.ServiceBus
- NServiceBus.AwsLambda.Sqs
Serialization
The serializer controls the wire format of message bodies. The System.Text.Json and XML serializers ship in the core package, so a separate package is only needed for another format:
Monitoring
These packages send health, metrics, and audit data to ServiceControl, so that ServicePulse can report on the running system:
- NServiceBus.Metrics
- NServiceBus.Metrics.ServiceControl
- NServiceBus.Metrics.ServiceControl.Msmq
- NServiceBus.Metrics.PerformanceCounters
- NServiceBus.CustomChecks
- NServiceBus.Heartbeat
- NServiceBus.SagaAudit
- NServiceBus.ServicePlatform.Connector
- ServiceControl.Contracts
Interoperability
These packages connect endpoints to systems running on a different transport, on another messaging technology, or outside the platform entirely:
- NServiceBus.MessagingBridge
- NServiceBus.Gateway
- NServiceBus.Gateway.Sql
- NServiceBus.Gateway.RavenDB
- NServiceBus.Envelope.CloudEvents (experimental)
Other
Optional features that extend endpoint behavior. Packages nested below another package extend it and are chosen to match the persistence or storage already in use:
- NServiceBus.Testing
- NServiceBus.Encryption.MessageProperty
- NServiceBus.TransactionalSession
- NServiceBus.Persistence.Sql.TransactionalSession
- NServiceBus.Persistence.CosmosDB.TransactionalSession
- NServiceBus.Persistence.DynamoDB.TransactionalSession
- NServiceBus.Persistence.AzureTable.TransactionalSession
- NServiceBus.Storage.MongoDB.TransactionalSession
- NServiceBus.RavenDB.TransactionalSession
- NServiceBus.NHibernate.TransactionalSession
- NServiceBus.Callbacks
- NServiceBus.ClaimCheck
- NServiceBus.UniformSession
- NServiceBus.Wcf
- Particular.Aspire.Hosting.ServicePlatform
Tooling packages
These ship as .NET command-line tools for one-off migrations, rather than as packages referenced by an endpoint: