But What if Things go Wrong
Johan Fabry · 2004
Building large-scale distributed systems these days is facilitated by a number of distribution frameworks. However, in practice, we see that failure handling is often treated poorly in these frameworks. An exception is transactions, which are a well-known approach for handling failure, and we see that, indeed, these distribution frameworks provide for transaction management. Transactions themselves have a number of drawbacks, which have been addressed by the creation of a number of advanced transaction mechanisms. But, we see that such advanced transaction mechanisms are not used in practice. We think that this is because developing with these mechanisms are not well supported. Therefore, we state that an essential part of a communication abstraction for distributed systems should be a cleanly abstracted way in which to handle advanced transactions, and support for the programmer to use these mechanisms.