Amazing story of eBay architecture
Posted by webstuffscan on December 11th, 2006
Here are some interesting facts about www.ebay.com, the leading internet auction site. Being in the Web application development industry, these figures appear mind boggling to me. I knew they must be having heavy traffic and used wonder how they manage it…
- eBay manages over 212,000,000 registered users!
- eBay contains over 1 billion photos!
- eBay manages over 26 billion SQL executions per day!!
- eBay gets over 1 billion page views per day!!
- eBay stores over 2 petabytes of data!!
If you want to read more on eBay’s architecture evolution, click here (PDF). This is a presentation on eBay architecture by Randy Shoup and Dan Pritchett at the SD forum.
eBay’s growth chart

Following are the key architecture decisions which helped eBay to achieve such scalability.
Scaling the data tier
1. The database load is spread by segmenting the data by function (user, item, account etc.)
2. Horizontal split of databases by access path.
3. Minimization of database resources (no stored procedure, no sorting, extensive use of prepared statements)
4. Minimize database transactions (This is achieved by careful ordering of database operations, running of reconciliation batch in case of failure etc.)
Scaling the application tier
1. Again spreading the load by segmentation (segmentation by function and further horizontal segmentation inside functions)
2. Everything is stateless (state maintained in cookies or scratch database), no EJB, minimal J2EE and maximum use of cache.
3. Tiered application and eBay’s own pure Java OR mapping.
4. Maximum code partitioning with minimum dependencies.
Further Reading
Presentation on eBay’s architecture evolution
- What is wrong with Digg?
- Pligg 9.5 beta released
- The Subservient Programmer
- Bashing digg - stupidity of Wired
- Lunch on top of a skyscraper!
