Wednesday, January 2, 2008

My new favorite Java framework: Terracotta

I love frameworks that promote non-intrusiveness. For me Terracotta is the definition on non-intrusiveness, it offers no API.

Terracotta is a framework for clustering java apps. It has many use-cases and the most common are as described by the Terracotta site:
  • Distributed Caching
  • Hibernate second level cache clustering
  • HTTP Session clustering
  • Virtual Heap for Large Datasets
  • Clustering OSS Frameworks
  • Master / Worker
  • POJO Clustering
Terracotta works at the instruction level of the JVM, and it manages objects in a completely transparent way for the developer. In most cases you can add Terracotta clustering after the code has been written and get all the benefits without much work.

Since Terracotta is so transparent to the program, it might seem like a bit too much magic to some. I believe this is one of the reasons that some developers turn to other API based frameworks for clustering. However, Terracotta has been proven many times, and the Terracotta team is currently working on publishing many case studies from well renowned customers, according to Ari Zilka, the founder of Terracotta. I had a really nice chat with him at JavaPolis.

Their current customer brag list:
http://www.terracottatech.com/customers.html

Another really cool thing about Terracotta is that they offer commercial support. They actually let you buy an enterprise subscription, which gives support with guaranteed response times. This also provides indemnification assurance, which I have never heard has been done on other open source projects. I have worked for several companies in the public sector, which won’t touch a framework it they cannot buy support. I guess they have no excuse not to check out Terracotta.

Check out the Terracotta Enterprise subscription:
http://www.terracottatech.com/buy.html

You don’t have to buy a subscription to use Terracotta, of course, it’s open source! More precisely, it is a slightly modified Mozilla Public License:
http://www.terracotta.org/confluence/display/orgsite/Licensing

A final note, just download it and try it out! You get a really good impression on what it’s all about just by checking out the demo apps. Unzip the archive, and then it is basically one click to go.
http://www.terracotta.org/

5 comments:

Gregory Pierce said...

One thing that I've always had a hard time figuring out is whether or not Teracotta was materially different than other major open source projects like JBoss Cache.

Alf said...

Hi Gregory, it's funny you should ask that question. Just a few days ago I read a white paper comparing Terracotta and JBoss Cache. And yes, they are materially and fundamentally different.
It's available on InfoQ.

Alf said...

..actually you can easily use Terracotta to create you own implementation of any clutering technology. That is, at least if it has a simple interface. A friend of mine recently made a JavaSpace implementation based on Terracotta. The code is really simple and it performs really well. He is actually thinking about open sourcing it.

Orion Letizi said...

That's awesome. I'd love to see that code open sourced.

--Orion

Alf said...

Hi Orion, cool that you are posting on my blog:) Terracotta contacted us to have a technical talk on use-cases and best practices, an offer we will not miss! We are probably going to ask for any hints on improving my friend's JavaSpace implementation among other things. And yes, he is definitely planning to open source it. I'll blog about it when it happens!