Search code examples
.netlinuxtransactionscopemsdtc2phase-commit

TransactionScope with Linux


I am trying to have WebAPI 2.2 self hosted on Linux enviroment which can be done with Mono, the catch is i am using transaction scope for distributed transactions, so is it (DTC) supported on non windows platforms? also if not is there any workaround or alternative to implement 2pc without DTC?


Solution

  • MSDTC is supported on windows only. An alternative to 2PC is to implement a message queue transaction. With this approach, you split the transaction apart and have one for the act of de-queuing the message and one for persisting to durable storage such as a relational database or a NoSQL solution (whatever that may be for your system). With this approach you must factor in message idempotency.

    More about this approach here:

    https://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/

    And you have options regarding what message queuing technology you want to use such as RabbitMQ or ZeroMQ.