@article {2018:ieeecloud:bac, title = {Consistent Disaster Recovery for Microservices: the BAC Theorem}, journal = {IEEE Cloud Computing}, volume = {5}, year = {2018}, month = {January/February}, pages = {49-59}, abstract = {How do you back up a microservice? You dump its database. But how do you back up an entire application decomposed into microservices? In this article, we discuss the tradeoff between the availability and consistency of a microservice-based architecture when a backup of the entire application is being performed. We demonstrate that service designers have to select two out of three qualities: backup, availability, and/or consistency (BAC). Service designers must also consider how to deal with consequences such as broken links, orphan state, and missing state.}, keywords = {availability, BAC theorem, consistency, disaster recovery, Microservices}, doi = {10.1109/MCC.2018.011791714}, url = {http://ieeexplore.ieee.org/document/8327550/}, author = {Guy Pardon and Cesare Pautasso and Olaf Zimmermann} } @inproceedings {tcc:2014:wsrest, title = {Atomic Distributed Transactions: a RESTful Design}, 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, TCC}, author = {Guy Pardon and Cesare Pautasso} } @inbook {DBLP:books/sp/wilde2011/PardonP11, title = {Towards Distributed Atomic Transactions over RESTful Services}, booktitle = {REST: From Research to Practice}, year = {2011}, pages = {507-524}, publisher = {Springer}, organization = {Springer}, abstract = {There is considerable debate in the REST community whether or not transaction support is needed and possible. This chapter{\textquoteright}s contribution to this debate is threefold: we define a business case for transactions in REST based on the Try-Cancel/Confirm (TCC) pattern; we outline a very light-weight protocol that guarantees atomicity and recovery over distributed REST resources; and we discuss the inherent theoretical limitations of our approach. Our TCC for REST approach minimizes the assumptions made on the individual services that can be part of a transaction and does not require any extension to the HTTP protocol. A very simple but realistic example helps to illustrate the applicability of the approach.}, keywords = {atomic transactions, REST, RESTful Web service interface, try-confirm-cancel}, doi = {10.1007/978-1-4419-8303-9_23}, author = {Guy Pardon and Cesare Pautasso} }