This is a review for the book “The Definitive Guide to Terracotta” by Terracotta, Inc.
For several years I had known about Terracotta when the software was still closed source, and generally did not give it a look. Once Terracotta became open source my interest rose and I wanted to give it a look over to determine if it could be used as a possible solution for an application which currently could only scale vertically. So, I bought this book and began reading.
The whole concept of Terracotta is that from a developer perspective you just code Java. You create in memory caches, use synchronized blocks, threads, blocks, waits etc without worrying about clustering issues because Terracotta is essentially JVM clustering with network attached memory. This concept and idea is appealing because Terracotta can give you the tools to take an older Java application and essentially make it cluster ready, without major modifications to the code as it works today; full transparency; at least that is the idea. Basically you analyze your application code and identify the parts (class members etc) which need to be shared across the clustered JVM and instrumented by Terracotta, you do this with some XML configuration.
That is the super short of it. With regards to the book; well frankly this book is excellent. Being written by the architects at Terracotta themselves, you are getting a first hand HOW TO to get up and running with this amazing peice of software. The book starts out with the high level concepts of what clustering is, the issues with it, how Terracotta helps, and then they jump you right in to a working HelloWorld example that you can get running easily and see how this all works. The rest of the book takes you through all of the features such as how to use it with Hibernate, Spring, HTTP sessions, pojos, caching etc. Towards the end they even touch on grid computing and threads.
I absolutely recommend this book for anyone who is seriously interested in evaluating if Terracotta would work for you as it is great to have it all in one book, vs. reading online via multiple resources.
Skill Level? Advanced/Java