Logo

Building the Ideal Betting Stack

Logo

This was a talk I gave at the London Erlang User Group in October 2017.

This presentation was a creative session to visualise building a betting stack from the ground up with no concern for legacy, focusing on traditional and innovative technologies. I drew on my experience building highly available, reliable, and concurrent systems for the online gambling and betting industry to outline my ideal combination of programming languages, middleware, operations, configuration management, and databases.

The Challenge

At any one time, betting systems are serving many hundreds of thousands of users with live odds and results, while managing multiple data streams on the backend. In peak times, like the Super Bowl or the Grand National, the number of users swells by an order of magnitude.

This demands superior concurrency, scalability, and reliability.

The Right Tool for the Job

At bet365 we lived by the mantra "the right tool for the job," running a mix of Erlang, Elixir, and Go in production.

When it comes to concurrency, Erlang and Elixir, both built on the BEAM virtual machine, excel. They are concurrency-oriented functional languages, built to handle vast numbers of users at the same time.

Go also offers good support for concurrency, especially when comparing it to Ruby, Python, or C++. However, it is not an alternative to Erlang or Elixir for backends where availability and low latency for high numbers of concurrent requests is required, as in online betting.

The Ideal Stack

In the ideal betting stack:

  • Erlang/Elixir handles publishers, bet placement, settlement, session management, wallet APIs, cash out, and liability calculations
  • Golang is used for data transformation tools and operational utilities

Watch the Talk

Want to learn more?

Get in touch to discuss how we can help with your project.

Contact Us