If you haven’t heard about it yet, Terracotta is an amazing open source product that provides support for session clustering, distributed caches, distributed workloads, and more. Terracotta is implemented by intercepting a handful of bytecodes at the JVM level and enforcing normal single-VM Java semantics across a cluster of machines (and not by programming to an API). The beauty of this is that the programming model is essentially the same as the single VM model. This allows you to write and test your app in the same way you always have, and then scale it out at deployment time by modifying external configuration files. Obviously, you still have to write valid multi-threaded programs with proper synchronization, and carefully control access to shared state, but you have to do that anyways.
Anyhow, I am very excited to have the opportunity to work on Terracotta. It hits a sweet spot for me in getting to work in a small and very smart team and build innovative low-level Java middleware. I also really liking being able to tap into the all the research in distributed computing, transactional systems, and concurrent algorithms. So, I expect to be learning a lot and working my ass off, and it should be a lot of fun.
Expect to see lots more on this blog on these areas as I start to ramp up. One of the great things about working on an open source product is that there is a lot more stuff that I can openly blog about than prior jobs, so I’m looking forward to that. Terracotta is already blessed with a lot of great bloggers and hopefully I can live up to their high standards.