Ebay history and architecture
Ebay[1]
Starts in 1995, initial name AuctionWeb (V1) :
- very simple architecture
- based on perl
- no database, for data persistence they used plain files
Because of rapid growth they needed to improve their architecture and so V2 (clever name) was born:
- replaced perl with C/C++
- started using a database in a master-slave configuration
- C++ back-end
- XSLT front-end
Any request will lead to an XML file being created in C++ and the XLST processor will transform that into html.
*pretty sophisticated architecture for the 90s, XLST was cutting-edge back then*
That hold out pretty well for a while but in the late 90s ebay experienced an exponential growth.
They started having some trouble with outages and needed improvements, so V3 was developed:
- based on java
- search engine still used C++
- proof that relational databases can scale (aggressive caching)
- developed a messaging layer for making a lot of asyncronious calls, they actually ended up being sued because of the delay in which images appear on the site after an item gets posted :-)
- although they switched to java the basic principle of generating xml files for each request was still used.
Combining the need for a multilingual website with the boom of AJAX technologies and flash applications they started to doubt their XSL system and moved on to what became in 2006 V4 of ebay:
- remove everything that could be replaced with java, Ebay loves Java
Everything is Java (Code):
- Image - Java class
- Link - Java class
- Javascript - Java classes
- Content - Java classes
=> lot's of code to write, they're using Eclipse for developing.
For more details check:
Eclipse at Ebay
Tailoring Eclipse to the eBay architecture
[1] Images and ideas/info are from the links above.