"Building on Quicksand" Paper for CIDR (Conference on ...
Towards Robust Distributed Systems
Trading Consistency for Scalability in Distributed Architectures One of the key aspects of the system architect's role is to weigh up conflicting requirements and decide on a solution, often by trading off one aspect against another. As systems become larger and more complex so more and more of the conventional wisdom about how applications should be built is being challenged. At last year's QCon conference in London in March, for example, Dan Pritchard gave a talk about eBay's architecture. Trading Consistency for Scalability in Distributed Architectures
One of the most important architectural decisions that must be done early on in a scalable web site project is splitting the data flow into two streams: one that is user specific and one that is generic. If this is done properly, the system will be able to grow easily. On the other hand, if the data streams are not separated from the start, then the growth options will be severely limited. Two data streams for a happy website Two data streams for a happy website
Asynchronous Architectures All computers wait at the same speed -- Dr. Thomas E. Bell, Performance of Distributed Systems, Presentation to ICCM Capacity Management Forum 7, October 1993, San Francisco Asynchronous Architectures
Five Scalability Principles Don’t think synchronously, ... ... don’t think vertically, don’t mix transactions with business intelligence, avoid mixing hot and cold data, and don’t forget the power of memory. -- MySQL site, 2007 Five Scalability Principles
Scalability Best Practices
Eventually Consistent Eventually Consistent I wrote a first version of this posting on consistency models in December 2007, but I was never happy with it as it was written in haste and the topic is important enough to receive a more thorough treatment. ACM Queue asked me to revise it for use in their magazine and I took the opportunity to improve the article. I posted an update to this article in December 2008 under the tile Eventually Consistent - Revisted. - please read that article instead of this one. I am leaving this one here for transparency/historical reasons and because the comments helped me improve the article.
Building a Non-blocking TCP server using OTP principles Author Serge Aleynikov <saleyn at gmail.com> Overview Building a Non-blocking TCP server using OTP principles
Life beyond Distributed Transactions
Building on Quicksand