Terracotta and the Database
How many Terracotta servers can be active at one time?
Your question probably refers to the simplest use of Terracotta that most clustered caching vendors like to point at where one Terracotta server is active at a time. This is the default and is designed to be highly scalable and available and low effort. It is not the only mode we support, however.
The correct answer is any number. We have options where the number of active servers is transparently managed by Terracotta. We also, somewhat obviously, allow developers to chop up their data manually and run any number of application partitions. The first form is transparent and automatic. The second is not transparent and requires manual partitioning strategies.
Do you see Terracotta as replacing the database for users?
No. I have run companies in the past whose products were databases. I know the difference between Terracotta and a database and the difference is quite vast. I cringe, for example, when people ask how to back up a Terracotta server to tape. We are honored to have been integrated in such cases where there is no more need for a database because we are there persisting to disk, but I really don't want to build a querying engine, reporting interfaces, batch processors, data migration tools and the like for Terracotta. So we don't replace a database as much as avoid it.
What do you mean by avoid it?
When I say 'avoid the database,' I am referring to what I call detached mode. This is simply the act of taking a database entity and instead of Hibernating it to Oracle on every change, closing the Hibernate session and batching up lots of changes before calling commit()-essentially detaching the Hibernate POJOs from Oracle for a while. As an example, take e-commerce shopping carts and checkout. Create a new sales order using Hibernate, but then get the user's payment info, shipping info, etc., all using in-memory objects and Terracotta. Only when the user hits "confirm order" and the credit card is authorized do you bother to commit all those POJOs back to Oracle. This will save lots of database traffic.
Do you have any plans to support the .Net environment?
Yes. I spoke with Microsoft last year and they expressed interest in making a version of Terracotta for .Net. I always want everything we do to be out in the open and Microsoft is very open to open source working relationships so this is a strong possibility for us.
Do you have any regrets about going open source with the Terracotta technology? How has it been better than remaining proprietary?
In my opinion as an engineer, Terracotta had no choice but to open-source. Our approach is new and disruptive. As a proprietary vendor, we had to go convince everyone who might use it, one by one, that what we do (a) works and (b) is a good idea. As an open-source company, users convince themselves of these two things. By the way, given that I am a developer, the only way I can be convinced that a technology works is to use it. I can't use anything that I have to pay for up front, before I confirm for myself that it is real. We expect no less of the Java community. OSS is vital to Terracotta's health as a technology.
And being open has been great. I could quote Web site download and visitor numbers that might be impressive. What's more important is that I am sitting here at a Java user conference where fully half the people I have spoken with-about 100 in total-have come to me having integrated Terracotta and now having questions about how to optimize their use case. This means developers are playing with it, using it and going to production and that's what we wanted from open source.
Can you cite any particular success stories of customers using Terracotta?
Well, yes, several. But how about just three for now?
PartyPoker.net, the world's largest online gaming site, announced a few months ago that they are building their entire gaming platform based on Terracotta, [going] forward. When they made that announcement, they had been in production on various levels for almost a year. Partypoker simplified their code base and increased application throughput by switching from by-hand replication strategies to Terracotta and JVM-level clustering for sharing user and game status in their cluster.
Adobe.com uses Terracotta to make some of their Web site's online services highly scalable and available.
A very popular and documented use case was done by Mark Turansky of BenefitFocus. His story is quite compelling.