Erlang is a functional programming language designed for building scalable, fault-tolerant systems. It was originally developed by Ericsson to handle massive concurrency in telecom applications, but now it's used by hipster startups trying to build the next WhatsApp.
Did you hear about that new messaging app? They built the backend in Erlang so it can handle millions of users sending emoji at the same time without crashing. 🙄
I was going to learn Erlang to build a scalable system, but then I realized I could just use Node.js and hire more DevOps engineers when things break. 💸
Presentation Domain Data Layering - Martin Fowler explains a common architectural pattern of separating presentation, domain logic, and data access layers. This could be a good starting point for understanding where Erlang fits in a larger application architecture.
Polyglot Persistence - Fowler makes the case for using multiple different data storage technologies within a single application. Erlang's built-in Mnesia database is optimized for the language's concurrency model, so this article provides some context on how it might integrate with other databases in a polyglot architecture.
Evolutionary Design - Many of the practices that enable evolutionary design, like continuous integration and modular architecture, are also important for building Erlang systems that can scale and maintain fault-tolerance over time. Fowler has several articles on this topic that provide useful background for Erlang developers.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.