Checking the compatibility between NSB 4.7.12 and NSB 7.3.0 when message subscriptions and deferrals are used via a shared NServiceBus SQL database.
- Using the TestConsole, a
IAddPaymentIntent
command is sent to the NSB 4.7.12 endpoint to begin the process - The endpoint handles the command and publishes
IPaymentIntentAdded
- Both the NSB 4.7.12 and NSB 7.3.0 endpoints subscribe to the event via the NServiceBus SQL Database subscription table
- The NSB 4.7.12 endpoint handles the
IPaymentIntentAdded
event and writes to the console to say that it has done so - At the same time, the NSB 7.3.0 endpoint handles the
IPaymentIntentAdded
event and sends a deferredICheckIfPaymentShouldBeExpired
command back to the NSB 4.7.12 endpoint - Once the derral expires the command is delivered to the NSB 4.7.12 endpoint which handles the command and writes the correlationId to the console
+-------------------+
| |
| +------------------+
| NSB 4.7.12 | |
| | |
| | +----------v----------+
+-------------------+ | |
| NServiceBus |
| SQL Database |
+-------------------+ | |
| | +----------+----------+
| | ^
| NSB 7.3.0 | |
| +------------------+
| |
+-------------------+
- You'll need a local SQL Server database called Nservicebus
- Run
Endpoint4712\bin\Debug\net48\NServiceBus.Host.exe
- Run
Endpoint730\bin\Debug\net48\Endpoint730.exe
- Run
TestConsole\bin\Debug\net48\TestConsole.exe
(this will send a command to the Endpoint4712 endpoint and then close) - Observe that both endpoints are handling commands, events and are processing deferred commands which originated from the other endpoint.