Our long-standing client asked us to develop a new project: an online auction system, where customers could buy and sell their lots—domain names.
We were asked to create a service allowing auctions to run automatically, keep track of time, accept participants’ bids, and put new customer lots up for bidding.
We successfully implemented the first version of the site and put it into operation. The site quickly became popular, collecting several hundred participants. Our company supported the site’s operation.
Every domain name offered for sale was accompanied by a vast amount of information: who owned the domain name, what site was on that name, and what marketing opportunities the site had. Participants made their bets, and there was active discussion in “chat.” At first, the site offered only one premium domain name for bidding per day.
As the project continued to gain momentum and the number of users grew, the system became incapable of handling the growing load—a few hundred people were participating in auctions at the same time, and thousands were watching and participating in chat. To solve that problem, we deployed modules of the system (online chat, bidding system, user notification system) on separate eJabberd servers written in Erlang.
The transition to Jabber servers made the core system independent from the web-server; the latter became responsible for static website content only. The system modules were physically separated, containing all work logic, and didn’t load either the web-server or the database. It improved the overall system performance as a result.