Sergey Nivens - Fotolia
Online bookie Bet365 has released code into the GitHub open-source library to encourage enterprise developers to use the Erlang functional programming language.
The company has used Erlang since 2012 to overcome the challenges of using higher performance hardware to support ever-increasing volumes of web traffic.
“Erlang is a precision tool for developing distributed systems that demand scale, concurrency and resilience. It has been a superb technology choice in a business such as ours that deals in high traffic volumes,” said Chandru Mullaparthi, head of software architecture at Bet365.
“However, despite its obvious advantages, Erlang suffers from poor support for web services and ODBC [open database connectivity] and an underdeveloped brand identity, which is putting people off.”
The online bookie found it was reaching the limits of scalability on its SQL databases. “Older technology, such as .NET and Java, are not scalable in highly distributed systems,” said Mullaparthi.
The company came across Erlang when it started investigating NoSQL. Erlang is a functional programming language originally used by Ericsson for the telco industry, which Mullaparthi said enabled the company to build fairly complex systems in a matter of weeks.
As Computer Weekly previously reported, Bet365 used Erlang to build its Cash Out product, launched in 2014. This feature allows users to close a bet early, before an event has finished, requiring substantial calculation of odds in real time. It has also been used in database migration to NoSQL.
Unlike procedural programming languages such as C or Java, Erlang is a functional programming language. It was originally used to handle the highly concurrent nature of telephone switching applications.
The challenge of concurrency, with high numbers of web users wishing to place bets simultaneously on the website, are similar to the problems historically faced by the telco industry.
Systems built using a procedural programming language to handle high levels of concurrency tend to be complex and unreliable.
“With a traditional procedural language it would take a lot longer to build,” said Mullaparthi.
According to Mullaparthi, coding in Erlang also made the system inherently more stable than if the system had been developed more traditionally.
Bet365 has now donated some of its experience of the programming language to the open-source community. “Erlang is a significant tool in our development stack. We are seeing the benefits of implementations in some key system areas, particularly in our website infrastructure.
“We want to give something back to the online technology industry by sharing our experience to help overcome problems we have previously tackled.”
Making Erlang enterprise friendly
The company’s IT environment comprises a mix of Windows and Linux servers, so Mullaparthi needed the ability to connect to these systems as well as to database systems. “While Ericsson had an ODBC database connector, we needed to improve on what was already there,” he said.
For Soap, a popular protocol used to enable different web systems to talk to each other, Mullaparthi said Erlang’s support was non-existent.
The lack of support presents two major stumbling blocks to Erlang’s use as a programming tool for business. ODBC is equally important as Soap, as it enables systems not written in Microsoft specific code to interact with SQL databases.
“The ODBC support had various issues that made it very difficult to integrate into relational SQL databases. This lack of support in Erlang is a weakness, since Soap and ODBC are heavily used in the enterprise.”
The Soap support library will be published on GitHub on 3 March 2016, with the ODBC library to follow shortly after. These releases represent the first phase of a support programme that will aim to address each of the major issues surrounding the uptake of Erlang.