In the second half of this blog series, Erik Schön looks next at the ‘right tool for the jobs’ that are required for FinTech 3.0. The Erlang/Elixir/OTP open-source ecosystem for software development has its roots in telecom – an industry that has already resolved many of the new challenges confronting FinTech. Revisit Part One.
The Right Tool for the Job
One of the most important tools in the telecoms toolbox for real-time, secure, reliable, scalable and interoperable systems that can be developed quickly and operated at low cost, is the open-source programming language and associated frameworks, tools and libraries called Erlang/OTP (Open Telecom Platform) originally developed by the telecom giant Ericsson.
The Need: Quick Development of the Right Thing
Mike Williams, co-creator of Erlang/OTP, wrote down his credo in 1985 which was then used to guide the development of Erlang/OTP during the 80s and 90s (Däcker, 2009):
- “Find the right methods – design by prototyping.”
- “Make mistakes on a small scale – not in a production project.”
- “It’s not good enough to have ideas – you must also be able to implement them to know that they work.”
These insights contributed to making Erlang/OTP suitable for iterative, incremental development with quick feedback from real customers. This also ensured a smooth developer experience making it easier to build the right thing that:
- customers find valuable, usable and sometimes even desirable;
- is feasible from a technical perspective;
- is viable from a commercial perspective;
- is reasonable from a societal perspective, e.g. sustainable and ethical.
The Need: Real-Time, Secure, Reliable and Scalable Solutions
Bjarne Däcker, head of the Ericsson computer science lab and Mike Williams’s manager at the time, formulated the requirements on the new programming language system as follows (Däcker, 2000):
- Real-time: “Actions to be performed at a certain point in time or within a certain time.”
- Security: “Stringent quality”
- Reliability: “Very large software systems … Interaction with hardware … Complex functionality such as feature interaction … Continuous operation for many years … Software maintenance (reconfiguration, etc.) without stopping the system … Fault tolerance both to hardware failures and software errors”
- Scalability: “Systems distributed over several computers … handling of a very large number of concurrent activities.”
Joe Armstrong, co-creator of Erlang/OTP summarised it as “making reliable distributed systems in the presence of software errors”. (Armstrong, 2003).
Business Outcomes: Faster, Safer, Better, and, More for Less
Over the past 20+ years Erlang/OTP has provided the following business outcomes (Cesarini, 2019):
- 2x FASTER development of new services thanks to the language’s design, the OTP middleware, the set of frameworks, principles, and design patterns that guide and support the structure, design, implementation, and deployment where e.g. Motorola saw 4-20 times less code compared to traditional languages.
- 10x BETTER services that are down less than 5 minutes per year thanks to built-in fault tolerance and resilience mechanisms built into the language and the OTP middleware, e.g. software upgrades and generic error handling, as seen by e.g. Ericsson in their mobile network packet routers.
- 10x SAFER services that are hard to hack and crash through denial of service attacks thanks to the language construction with lack of pointers, use of messages instead of shared memory and immutable state rather than variable assignments, as seen by the number of vulnerabilities compared to other languages (CVE, 2021).
- 10x MORE users (billions), transactions per second (millions) within milliseconds thanks to a battle-tested virtual machine as seen by e.g. WhatsApp with more than 2 billion users.
- 10x LESS costs and energy consumption thanks to fewer servers needed where e.g. Bleacher Report were able to reduce their hardware requirements from 150 servers to 5.
It has been used in telecom since the 90s by e.g.
- Vendors: Cisco, Ericsson, Nokia, Motorola, 2600Hz
- Operators: T-Mobile, Telia
- Social: WhatsApp
and in FinTech. since the mid-00s by e.g.
- Startups: Rocker, Monara
- Scaleups: Solarisbank, Brex, SumUp, Kivra
- Unicorns: Klarna
- Traditional banks and financial institutions: Mastercard, Goldman Sachs, Bloomberg, OTP Bank
- Digital currencies: æternity, BlockFi
Robert Virding, co-creator of Erlang/OTP formulated the unique value proposition like this:
“Any sufficiently complicated concurrent program in another language [for this job to be done] contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.” (Virding, 2008).
What about Elixir?
Elixir has all the benefits of Erlang with a lower threshold for developers used to traditional programming languages like Ruby since Elixir’s syntax looks much more familiar to them. Additionally, Elixir gives a very smooth developer experience including state-of-the-art libraries e.g. for graphical user interfaces with Phoenix LiveView.
The Developer Experience
Both Erlang and Elixir are easy to learn within a couple of weeks for people with practical experiences and skills equivalent to a computer science degree as well as a curiosity to learn. And, experience shows that they get up to speed within a couple of months which is what it normally takes to understand a new product codebase or business domain (Däcker, 2000).
Engineers and developers love the experience of using Elixir and Erlang, and as of today, there are over 50,000 members in over 140 Meetup groups in all continents of the world except Antarctica (Schön, 2021).
The Road Ahead
The Erlang/Elixir open-source ecosystem is thriving like never before.
During 2020-2021 we have seen companies like WhatsApp and Klarna working together on improving the developer experience further and companies like Ericsson evolving the OTP middleware where the next OTP release in May, 2021 is expected to improve the out-of-the-box performance of Erlang and Elixir applications by 30-130% (Larsson, 2020) and reduce the energy consumption by 25% (Cathcart, 2021).
And, we haven’t even mentioned the recent and exciting announcement of Elixir optimised for quick development of safe machine learning solutions for new innovative, automated services (Valim, 2021).
We hope that you now see what FinTech. can learn from telecom and how FinTech. companies can use the Erlang/Elixir/OTP open-source ecosystem to go 2x FASTER, 10x SAFER, 10x BETTER with 10x MORE for 10x LESS – resulting in happy and loyal customers as well as engaged developers.
What are your jobs to be done? What tools are you using? How can we help? Visit our FinTech Hub Page or, if you’re ready to find out how we can work together, tell us about your development project or idea.
Kudos to Michael Jaiyeola, for the original idea, helpful pointers, examples and feedback; Noman Azim, for valuable input and concrete examples; Steve Roberts for helpful feedback, insights and examples from a telecom perspective; Phil Harrison for insights and feedback from a FinTech. perspective; Francesco Cesarini for co-creating a generous and welcoming community, for spreading the word and feedback; Joe Armstrong, Robert Virding, Mike Williams and Bjarne Däcker for perseverance, professionalism and respect in co-creating and managing Erlang/OTP.
Erik Schön, Managing Director, Erlang Solutions Nordic, is an executive with 20+ years of telecoms experience from global standardisation, system design and managing R&D organisations of up to 400 people at the global telecom giant Ericsson. Erik is a big fan of Erlang since the 90s and his latest book is The Art of Strategy.
Armstrong, Joe (2003). Making reliable distributed systems in the presence of software errors
Cathcart, Will (2021), Improving WhatsApp’s server efficiency by 25%
Cesarini, Francesco (2019). Which companies are using Erlang, and why?
CVE (2021). CVE Security Vulnerability Database
Däcker, Bjarne (2009). CS Lab and all that …
Larsson, Lukas (2020). Implement BeamAsm – a JIT for Erlang/OTP.
Rubio, Manuel (2019). Which companies are using Elixir, and why?
Schön, Erik (2021). Elixir & Erlang Developers
Valim, José (2021). Nx (Numerical Elixir) is now publicly available.
Virding, Robert (2008). Virding’s First Rule of Programming