Why Entrigna Chose the Erlang Ecosystem for its IoT Start-up

Murali Kashaboina 20.02.2018

Tech startups are constantly challenged to not only create new disruptive software, but to also produce them in a relatively short amount of time. There are numerous examples of Erlang being key to a start-ups success, the most notable being of course WhatsApp. In the case of Entrigna, Erlang was essential to their success too. Erlang enabled them to rapidly develop a powerful and scalable platform in a short space of time.

In 2011, Murali Kashaboina (founder, CEO Entrigna), was leading a technical team at a major airline. His team was asked to create a system that could perform multiple tasks with large amounts of data from several systems. For this project, the solution would have to perform optimization based on various parameters, complex event processing and also conform to multiple business rules.

Several products from major vendors were evaluated, however, none of the products met all of the requirements. As a result, two independent products had to be purchased to perform all of the needed functionality. These products however did not talk seamlessly to each other, so middleware had to be installed to connect the two systems. These heavily modified systems took an extremely long time to create, costing a large amount of money to license and develop.

Entrigna - an IoT Start-up Increasing Revenues and Reducing Inefficiencies in Real Time

As a result of this project, Murali and several members of the team left the airline with the idea of creating their own platform. The platform they envisaged would include all of the major decision-making capabilities, such as machine learning, complex event processing, business rules and optimization, which were required within such a system, but  in a manner that would be easily scalable.

The Entrigna team knew that they needed to code the platform in a language that was easily scalable, could run complex programs on a small processor and be developed relatively quickly. The development team evaluated several different technologies, including  Java, Python, Clojure, and Haskell, finally they settled on Erlang as the best fit.  

Why Entrigna Chose Erlang for its IoT Solutions?

1. Entrigna’s software needed to be able to run on small processors, allowing companies generating large amounts of data to make real-time decisions on “the edge.”  Because Erlang distributes memory across multiple nodes by default, processing could happen on small processors, like Raspberry Pis. The alternative would have been to transfer the data to the cloud for processing. This edge computing is critical for companies that may have connectivity problems, like agriculture or airlines.

2. Erlang has several key features that help with error handling. Erlang has built in fault tolerance, which means that if there is an error in the code you’re not forced to restart the server. Additionally, with the OTP framework supervision mechanism, Erlang provides guidance on where to find an error so you can take action quickly, avoiding the headache of checking your code line by line.  

3. The development team could connect remotely to the Erlang servers. This let the development team see the actual server environment while they were debugging the code.  

4. The development team knew that they were going to be doing a lot of computations and didn’t want to spend time creating code unnecessarily. Erlang was the most flexible language when it came to pre-built libraries. Erlang easily connects with pre-built libraries like C, Java and Python.

5. Erlang’s abstract form notation helped the development team create dynamic computational models which helped the team reuse the code they were writing.

These factors saved the development team countless hours and reduced greatly the cost of the project.

Murali Kashaboina (founder, CEO Entrigna) will be going into detail about this process at Code BEAM SF (15-16 MAR 2018). His case study, 'Erlang In Action – How Erlang Lets Us Create A Scalable Edge Based IoT Solution,’ will reveal to developers a real business case where Erlang was used to create an IoT software platform and provide best practices on how to implement such an Erlang solution.

Find out more about Code BEAM SF here.

 

Murali Kashaboina
Author

Murali Kashaboina

Murali Kashaboina is the founder, CEO & Chief Data Scientist of Entrigna, Inc. Murali brings over 17 years of IT experience in enterprise architecture design, real-time business intelligence and IT application development and strategy. Prior to founding Entrigna, Murali served as the Managing Director of Enterprise Architecture at United Airlines and played a key role in the merger of the United and Continental Airlines enterprise systems. Murali also served as the Lead Architect for United.com and led the architecture & delivery of United’s online booking engine, which was one of the largest initiatives at United Airlines. His deep understanding of the intricacies involved in building real software for real world business problems and seamlessly enabling them for business use, led him to found Entrigna. Murali holds a Masters’ degree in Mechanical Engineering from University of Dayton, Ohio