I just returned from a short trip to India, where I gave a 3-day GigaSpaces training for a financial company with a development branch in Pune.
Having worked in India before, it surprised me how easily memories can slip away. It was a good refresher, and I made an oath for 2009 to not complain about the traffic jams in the Netherlands for the next few months, and also to eat more Indian food :).
In my class there were 7 bright and nice people. All of them had some or a little more exposure to GigaSpaces as the company is already a customer. During the three days we ploughed through a hectic schedule based around the e-Auction Use Case. The e-Auction use case is a fictitious, but very common example on how success can turn into failure by using a traditional tier-based architecture. By nature such architectures are very hard to scale, especially if you want to combine scalability with aspects such as performance and fault-tolerance. At some point (and sometimes this can happen very early!) these aspects start to bite eachother, making it ever-more difficult to walk the fine line of balancing throughput with reliability and scalability aspects, and at the same time maintain ease of implementation and deployment.
In the use-case we demonstrate how to create a architecture using GigaSpaces that can scale beyond the regular life-expectancy of the application or beyond any foreseen or unforeseen success- and growth-rate, while at the same time being extremely fault-tolerant and performant. To explain this in a matter of three days we normally cover the following subjects:
- GigaSpaces Basics, such as product walkthrough, topologies.
- Basic API’s for storing and retrieving data into the GigaSpaces In Memory Data Grid.
- Processing Units, which is the beating heart of GigaSpaces.
- Concepts and semantics for creating a Messaging Grid.
- Task Execution and Remoting, allowing for Grid Computing paradigms such as Map/Reduce, Master/Worker.
- SLA’s which will let GigaSpaces scale on demand, or recover from failures.
- Web Application Support.
- Mirror-Service Support, which allows for reliable, but asynchronous persistency to a disk.
- Since GigaSpaces is very reliant on Spring, we usually also include a short topic on Spring.
All of the above is lab-driven, lots of coding, and very hands-on. The training was a lot of fun to do, and my overall stay has been perfect: well-accomodated, great great food and some wonderful people. Here’s a nice snap: