Papers, tech-Tips, webminars and more
Edit | Attach | New | Raw | Delete | History | Print | Tools

Transactions for the REST of us

Even if a single idempotent interaction between one client and one RESTful Web service is reliable, it is not clear how to guarantee the property of atomicity when a client is interacting with multiple RESTful Web services. Even if HTTP has been designed to achieve reliable transfer of state between client and server, it is not clear how to use HTTP in order to let a client atomically transfer the state among two resources owned by different servers. There is considerable debate in the REST community whether or not transactions are needed, desirable and possible, but it is agreed that many are reluctant to adopt REST to build SOAs in enterprise settings due to the apparent lack of transactional support.

This presentation's contribution to this debate is threefold:

  1. we define a business case for atomic distributed transactions in REST based on the Try-Cancel/Confirm (TCC) pattern,
  2. we outline a very light-weight protocol that guarantees atomicity and recovery over distributed REST resources, and
  3. we discuss the inherent theoretical limitations of our approach.

As opposed to existing work in the area, our TCC for REST protocol minimizes the assumptions made on the individual services that can be part of a transaction (ensuring that they remain loosely coupled) and does not require any extension to the HTTP protocol.

Watch the recording of Transactions for the REST of us presentation on InfoQ but also have a look at the book "SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST" in which this and other REST-based transaction methods are documented.

Transactions for REST is available to subscribers of Atomikos ExtremeTransactions®.

References

spacer
Copyright © 2014 Atomikos BVBA. Transaction Management for Extreme Transaction Processing and SOA Environments serving ISV, Commercial, OEM and Open Source Markets
Site map RSS ATOM