The Outbox is designed to achieve “exactly once”-like behavior similar to distributed transactions, without using distributed transactions. For this to work, all storage operations (outbox, sagas, and business data) need to use the same database. Therefore, it doesn’t really make sense to use different storages when planning to use the outbox.
Hi @Tim, Thank you for the info. We are in the same place @Nen_Zax was at, with Sagas in Cosmos, but business data in SQL Server (Azure SQL Managed Instances). Is there any documentation available on how we would migrate live production services from using Cosmos persistence to SQL persistence? We can tolerate about 3 min of downtime before some serious issues start occurring, but no downtime is preferred.
@danielmarbach Would it be feasible to configure both SQL and Cosmos persistence with SQL as the primary saga configuration and then have a fallback to locate the saga in Cosmos if it is not found in SQL?
Any idea why this detailed example of gradually migrating from NHibernate to SQL persistence was removed?
As part of review of the sample that occurred when we upgraded to .NET 8, we found the sample to be quite complex, based on broken assumption, and, without further guidance, a risk to our customers. We think we have to rethink that sample and the migration strategies documentation in general.
Would it be feasible to configure both SQL and Cosmos persistence with SQL as the primary saga configuration and then have a fallback to locate the saga in Cosmos if it is not found in SQL?
I don’t think that would be possible out of the box today since there can only be one persister for a specific persistence type be registered.