Prof. Dr. Cesare Pautasso

Atomic Distributed Transactions: a RESTful Design

Guy Pardon, Cesare Pautasso

5th International Workshop on Web APIs and RESTful Design (WS-REST 2014), Seoul, Korea

April 2014

Abstract

The REST architectural style supports the reliable interaction of clients with a single server. However, no guarantees can be made for more complex interactions which require to atomically transfer state among resources distributed across multiple servers. In this paper we describe a lightweight design for transactional composition of RESTful services. The approach -- based on the Try-Cancel/Confirm (TCC) pattern -- does not require any extension to the HTTP protocol. The design assumes that resources are designed to comply with the TCC pattern and ensures that the resources involved in the transaction are not aware of it. It delegates the responsability of achieving the atomicity of the transaction to a coordinator which exposes a RESTful API.

Download

PDF: ▼tcc-wsrest2014.pdf (343KB)

Citation

Bibtex

@inproceedings{tcc:2014:wsrest,
	author = {Guy Pardon and Cesare Pautasso},
	title = {Atomic Distributed Transactions: a RESTful Design},
	booktitle = {5th International Workshop on Web APIs and RESTful Design (WS-REST 2014)},
	year = {2014},
	month = {April},
	publisher = {ACM},
	address = {Seoul, Korea},
	abstract = {The REST architectural style supports the reliable interaction of clients with a single server. However, no guarantees can be made for more complex interactions which require to atomically transfer state among resources distributed across multiple servers. In this paper we describe a lightweight design for transactional composition of RESTful services. The approach -- based on the Try-Cancel/Confirm (TCC) pattern -- does not require any extension to the HTTP protocol. The design assumes that resources are designed to comply with the TCC pattern and ensures that the resources involved in the transaction are not aware of it. It delegates the responsability of achieving the atomicity of the transaction to a coordinator which exposes a RESTful API.},
	keywords = {atomic transactions, REST, Try-Confirm-Cancel}
}