Atomikos: Reliability for the Cloud

The cloud phenomenon is an interesting one, and a natural evolution of the outsourcing model. While a lot is going on around cloud computing itself, little is being said about reliability.

Do clouds offer reliability? In a way yes: caching systems like Terracotta, Gemstone or Oracle’s Coherence offer a fail-safe mode for availability of your data in the form of caches. So if a cloud node goes down, chances are that a live copy of the data still exists somewhere else, which means that your process can continue working elsewhere.

All is fine (or mostly fine) if you are working with a single database and are processing, say, web requests in the cache. After all, if you only have one database and no other resources then you don’t even need something like a transaction manager (or Atomikos, for that matter). There are at least two situations where things change:

  • If you queue cache updates to enable write-behind, then you find yourself in a queuing scenario and are processing jobs from a queue to a database. Enter distributed transactions.
  • If you are not processing web requests but rather get queued requests from the start. Enter distributed transactions.

In both cases you should at least consider using a transaction manager. In both cases, Atomikos is a good choice for the following reasons:

  • It’s open source (or at least our basic version is)
  • It’s very light-weight and easy to deploy (meaning it lends itself easily to cloud-oriented virtualized configurations)
  • It bundles over 10 years of experience and market leadership
  • It provides full crash recovery and all other bells and whistles - unlike many of the built-in solutions that you will find in a cache

So in that way, Atomikos provides “reliability for the cloud”.

Comments are closed.