Outbox pattern implementation with Azure persistence

I’m having a hard time trying to understand how transaction/data is working with the following setup in a small POC project:

  • C# AzureServiceBus endpoints
  • Outbox enabled with AzureTablePersistence
  • behavior to identify partition key using messageId

Is there a way to have separate tables for Outbox(in/out) and business data? Currently, I see all the data in the same table but this won’t work with a real life scenario where we have much more complex business dataset.

Do I have to move to Cosmos DB in order to achieve that?

Thanks
Michel

Hi Michel,

The transactional operations only work against the same table and same partition key. That is unfortunately a restriction of the services. Moving to CosmosDB wouldn’t really help there because also with CosmosDB requires the operations to go against the same container and same partition key as well to have transactional writes of data.

Maybe we can help you with to look into more details of your complex business data set to help you select your persistence. You can either share it here or if you need more privacy you can reach out to our non-critical support, and we can discuss things there and hop on a call depending on the needs.

Regards,
Daniel