Kraya Ltd.
1 Miller Row

+44 (0)131 240 0350

Backend Infrastructure Rebuild


Every year the number of customers using the Edinburgh Festival Fringe website has increased, especially during the peak time when tickets first go on sale. On that first day, however, the website has traditionally laboured to cope with the high demand. Over recent years improvements had been made to the infrastructure which reduced the amount of time where the site was struggling down from a day in 2006 to a couple of hours in 2007. For 2008 it was decided to completely re-engineer the backend of the website to ensure that it would show no signs of struggling on that first day, and for the infrastructure to be made scalable for increasing demand in subsequent years. In addition, the infrastructure had to integrate with the Fringe's new ticketing system which was in the process of being redeveloped by a third party agency.

What We Did

Numerous technologies were employed to build a robust and fast website cluster. Incoming traffic was distributed among the webservers using load-balancing, with an active failover. Database replication was used to allow for each webserver to have very fast local reads, with writes going to a central database server. File uploads went to a central repository, which automatically triggered distribution amongst the webservers. The design of the system would allow for additional webservers to be added to the cluster, should the need arise. Finally, a node from the ticketing system was placed alongside the cluster to facilitate fast and efficient transactions between the website and the booking system.


As it was, the ultimate failure of the Fringe's new ticketing system meant that ticket sales were delayed, and indeed could only begin once kraya had stepped in to help and built the Fringe a new emergency ticketing system. The subsequent furore over this failure overshadowed any performance gains by the website infrastructure itself. However, throughout the run whilst tickets were on sale, whereas the booking system still had major performance issues, the website itself responded in a fast and efficient manner – in effect, it just worked, perfectly.