We currently run NSB 5 with a RavenDB for business data persistence using a fairly traditional MSMQ + RavemDB + DTC configuration for the transport.
Given the issues Particular have highlighted around Raven + DTC under load we are in the process of migrating from DTC to outbox.
Our existing implementation has separate Raven DB connection strings, document stores, document session initialisation and associated IoC wire-up (using structure map) for the business data persistence and the transport persistence. For the initial Outbox migration the team have kept these separate Raven sessions.
Whilst the documentation around the RavenDB Outbox documentation doesn’t explicitly state this, my understanding of how Outbox works relies on the business data and the NSB persistence sharing the same database transaction to achieve atomic updates - therefore they should share a single document session?
I would assume that this means we should be leveraging the ‘Shared Session’ called out in this page: https://docs.particular.net/persistence/ravendb/?version=raven_3
But this does not seem to work - the UseSharedSession config option seems to be broken when used with Outbox and/or Sagas… I think this unfixed ‘Issue’ confirms this: https://github.com/Particular/NServiceBus.RavenDB/issues/71
Does anybody else have any experience running an NSB 5 implementation with Raven DB for both business and transport persistence with Outbox? Should we be using the shared document session and in which case how is this configured?
Thanks in advance.