Some Architectural Principles
June 18th, 2007 by Jeremy ChoneHere are some important architectural guiding principles we are following:
- “If you cannot Split it, you cannot Scale it”. This came from a great EBay architecture presentation during a SDForum session in Palo Alto in November of 2006. (Presentation: How eBay Scales Presentation)
- Statefullness is the enemy. This is one of the reasons why we avoid any framework that assumes states between the client and the servers. This is not to say that client cannot store some states, but rather than the client cannot assume that the server will remember them.
- “Start simple, end simple”. In other words, “keep it simple.” However, we recognize that at some points in the design lifecycle, some components could become a little complex; the goal should be to eventually simplify them.
Principles are hard to always follow, but they are here for a reason… keeping us disciplined. So far, we are not doing too bad at following these principles, but we know we will have some work to do on the database side. The whole trick is to scale cheap…
June 18th, 2007 at 9:57 am
Good to read your blog. In my opinion, whatever complex is not going to work well. Always try and make simple things. Best of luck for Sportner. looking to hear more from you guys.