bet365’s InPlay betting platform was initially developed in Java. It was a highly concurrent, distributed system running 100’s of servers, allowing users to place bets in real time. It supported TCP/IP and Long Poll clients and made use of proprietary modelling techniques for changing the odds on bets. The company grew fast, with an exponential customer increase. They soon reached the point where at any given time they would have up to 2 million people on the site simultaneously, generating thousands of updates per second.
The sheer volume of web traffic and transactions placed huge pressures on the systems that supported it. They realised the business was running at a scale where traditional tools and techniques no longer offered acceptable performance in terms of scalability and time to market. It was only a matter of time before the system would hit the limit of its capability. The ability to scale would falter, latency would increase with load, and the system would lose reliability. With increasing scalability requirements, traditional relational databases would also become problematic.
bet365’s R&D team was tasked to seek out relevant technologies that could solve their complex scalability and business problems and to explore new ways of delivering software. One of their main objectives was to find new technology that could support highly concurrent systems and implement it in bet365’s tech ecosystem. The team set out to explore the entire technological landscape and identify the best techniques and tools. The team sought out existing, mature technologies that were proven in other areas which could be re-used in their domain.
Apart from a different approach to concurrency than bet365’s legacy systems and not being overly complex, the new technology needed to possess the following key attributes:
Erlang has become an essential technology in our toolkit. It is helping us to create reliable, fault-tolerant systems that can be scaled incrementally to meet the growth in our business.
bet365’s team found and evaluated the Erlang programming language which perfectly met their requirements. Erlang is a robust compact language initially developed for Telecoms. Recently Erlang has seen adoption by businesses with large volumes of concurrent, active users who transact a massive amount of data in real-time. Among them are WhatsApp, T-Mobile, AdRoll, Klarna, Vocalink, EE, Machine Zone and many more. Its actor style concurrency, immutability, OTP libraries and reliability semantics make it far easier to construct massively parallel systems. bet365’s R&D team decided Erlang was the perfect fit, so we supported them with the transition. At Erlang Solution, we take pride in being the world’s leading provider of consultancy and development services for Erlang technologies and products
bet365 and Erlang Solutions formed a core engineering team that developed a successful proof of concept system in 2 months. It showed that Erlang was a much better fit than the initial Java based solution. In the next phase we offered our expertise and advice to build, scale and customise bet365’s InPlay platform, as well as training and service support. The InPlay platform currently pushes the live odds of hundreds of thousands of sporting events to millions of customers so they can bet on events as they happen. After the initial development of the InPlay system, we have supported bet365 to migrate more infrastructure from Java to Erlang. Below are the main outcomes of our collaboration.
Significant reduction in code complexity
Increase in users supported on a single node from 10s to 100s of thousands
Increase in the speed of product development and delivery
System supports for data changing at 4x faster than the original rate