ECO and distributed transactions
My current app is a website, each client gets their own unique database in order to help prevent possible data access from other clients (and meet various legal requirements too.) One of the features of this application is that there is some core data (such as countries/currencies) which is maintained on behalf of the client. This data will be identical for all clients, and only maintained by a system administrator. Obviously expecting the admin to log into each client to perform updates is unreasonable, so I have structured my app so that there is a separate Admin website which updates a master database and propagates the changes to all of the clients. When the master website does an update it performs it within an IUnitOfWork, and then tells the same update command to execute for each client database too. If any of these updates fail for whatever reason then the whole thing needs to be cancelled whether one of the child databases updated or not. using (var distributedTransac