Stores NServiceBus data in various relational database engines, without the need for an intermediate ORM, using only a configured
For a description of each feature, see the persistence at a glance legend.
|Storage Types||Sagas, Outbox, Subscriptions, Timeouts|
|Transactions||Local database transactions or distributed transactions when available|
|Concurrency control||Optimistic concurrency for correctness + pessimistic concurrency for performance|
|Scripted deployment||SQL scripts generated at compile time, can be promoted outside build directory.|
|Installers||Installers execute the generated scripts, which can be enabled in development.|
- Supports multiple database engines.
- No ORM dependency: can be used with Entity Framework, Dapper, etc.
- Independent tables for each endpoint. No "noisy neighbor" problems.
- Generates DDL scripts at compile time in the build output directory.
- Generated scripts can be promoted outside the build directory and:
- Added to source control.
- Compared using a diff viewer.
- Inspected by DBAs.
- Treated as first-class citizens in operations workflows for installation and deployment.
- Sagas are:
SQL installation scripts are created as a compile-time output alongside a project's binary outputs. Additionally, these scripts can be promoted to a directory under source control so that differences can be easily tracked and analyzed. To learn more, see Controlling Script Generation.