Our vi­sion on how to do trans­ac­tions in REST...

Even if a sin­gle idem­po­tent in­ter­ac­tion be­tween one client and one REST­ful Web ser­vice is re­li­able, it is not clear how to guar­an­tee the prop­er­ty of atom­ic­i­ty when a client is in­ter­act­ing with mul­ti­ple REST­ful Web ser­vices. Even if HTTP has been de­signed to achieve re­li­able trans­fer of state be­tween client and serv­er, it is not clear how to use HTTP in or­der to let a client atom­i­cal­ly trans­fer the state among two re­sources owned by dif­fer­ent servers. There is con­sid­er­able de­bate in the REST com­mu­ni­ty whether or not trans­ac­tions are need­ed, de­sir­able and pos­si­ble, but it is agreed that many are re­luc­tant to adopt REST to build SOAs in en­ter­prise set­tings due to the ap­par­ent lack of trans­ac­tion­al sup­port.

This pre­sen­ta­tion's con­tri­bu­tion to this de­bate is three­fold:
  1. we de­fine a busi­ness case for atom­ic dis­trib­uted trans­ac­tions in REST based on the Try-Can­cel/Con­firm (TCC) pat­tern,
  2. we out­line a very light-weight pro­to­col that guar­an­tees atom­ic­i­ty and re­cov­ery over dis­trib­uted REST re­sources, and
  3. we dis­cuss the in­her­ent the­o­ret­i­cal lim­i­ta­tions of our ap­proach.

As op­posed to ex­ist­ing work in the area, our TCC for REST pro­to­col min­i­mizes the as­sump­tions made on the in­di­vid­ual ser­vices that can be part of a trans­ac­tion (en­sur­ing that they re­main loose­ly cou­pled) and does not re­quire any ex­ten­sion to the HTTP pro­to­col.

Watch the record­ing of Trans­ac­tions for the REST of us pre­sen­ta­tion on In­foQ but also have a look at the book "SOA with REST: Prin­ci­ples, Pat­terns & Con­straints for Build­ing En­ter­prise So­lu­tions with REST" in which this and oth­er REST-based trans­ac­tion meth­ods are doc­u­ment­ed.

Trans­ac­tions for REST is avail­able in our prod­ucts.

Based on user feed­back, we have also de­vel­oped a dif­fer­ent so­lu­tion for REST trans­ac­tions: see ACID trans­ac­tions across REST mi­croser­vices and Trans­ac­tion­al REST mi­croser­vices with Atomikos

Ref­er­ences

    • M. Babazadeh, Distrib­uted Atom­ic Trans­ac­tions over REST­ful Ser­vices, Master Th­e­sis, Univer­si­ty of Lugano, Switzer­land, June 2012

    • T. Erl, B. Car­lyle, C. Pau­tas­so, R. Bala­sub­ra­man­ian, SOA with REST: Prin­ci­ples, Pat­terns & Con­straints for Build­ing En­ter­prise So­lu­tions with REST, Pren­tice Hall, Au­gust 2012, ISBN 9780137012510

C. Pau­tas­so, REST­ful Web Ser­vice Com­po­si­tion with JOpera, Proc. of the In­ter­na­tion­al Con­fer­ence on Soft­ware Com­po­si­tion (SC 2009), Zurich, Switzer­land, July 2009
RSS

Comments

Add a comment

Corporate Information

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

Contact Us

Copyright 2026 Atomikos BVBA | Our Privacy Policy
By using this site you agree to our cookies. More info. That's Fine