A letter to the convinced?
Few weeks ago a colleague of mine Owen Taylor wrote an interesting blog – "a letter from me to the unconvinced" which triggered an interesting thread on the TheServerSide . During the past year I had the honor to see many users and customers who simply get it! I dedicate this letter for all of those who where open enough to listen to those ideas and build a successful business application that in many cases became a role model for the entire organization in defining their next generation applications.
Last year I published a paper titled Space-Based Architecture and the End of Tier-Based Computing (registration required), which basically outlined a vision towards a new type of architecture for building highly scalable stateful applications as an evolution path to the existing tier based approach.
I referred to this architecture as Space Based Architecture or in short SBA.
The basic principle of SBA is that instead of breaking the applications into tiers, the application itself is broken into self sufficient processing units. To make each processing unit self sufficient, all the elements required for processing a transaction should be collocated. That includes the messaging layer (queuing of the transaction), executing the business logic and storing its data. Scalability is achieved simply by adding more of these self sufficient processing units. To maintain affinity between the units of work both the data and the messages are partitioned in the same way, i.e. based on a consistent key in the data and incoming message. In this way we ensure that requests for a specific context will be routed to where that context lives.
Throughout the past year and even before that we gained interesting experience in both deploying and implementing large scale applications with that approach while simplifying the model and the concept. There have been a few blogs on this topic already which have started to gain traction around the idea. What I found interesting is that once people understood the concept it was very easy for them to lay it out over their entire architecture.
In this series of posts I will share some of these experiences through general architecture and sample code examples in the following order:
1. General principles
2. Making it seamless and simple through Spring
3. Applications built on SBA:
a. Application categories
b. Case studies using SBA:
i. FX trading – low latency and stateful transactional application
ii. P&L calculation – middle office application
4. SOA and SBA
5. SBA.net – running SBA using .Net
My next post on this topic will discuss the first chapter of the series – SBA's General Principles. I hope you will find the subject interesting and stimulating and I'm looking forward to hearing your thoughts!