Some Architectural Principles

June 18th, 2007 by Jeremy Chone

Here are some important architectural guiding principles we are following:

  1. 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)
  2. 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.
  3. 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…

One Response to “Some Architectural Principles”

  1. Ajay Says:

    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.

Leave a Reply