Ulf Wiger became one of the first commercial users of Erlang (certainly
the first in North America) when he bought a license in 1993. At the
time, he was busy designing disaster response systems in Alaska. In
1996, he joined Ericsson and became Chief Designer of the AXD 301
development. At nearly 2 million lines of Erlang code, AXD 301 is the
most complex system ever built in Erlang, and probably the most complex
commercial system built in any functional language.
In recent years, Ulf has been involved in several products based on the
AXD 301 architecture, and has been an active member of the Open Source
Erlang community. In February 2009, Ulf began his new job as CTO of
Erlang Solutions Ltd.

Although Telecoms, the domain for which Erlang was conceived, has strong and ubiquitous requirements on overload protection, the Erlang/OTP platform offers no unified approach to addressing the problem. The Erlang community mailing list frequently sports discussions on how to avoid overload situations in individual components and processes, indicating that such an approach would be welcome. As Telecoms migrated from carefully regulated single-service networks towards multimedia services on top of best-effort multi-service packet data backbones, much was learned about providing end-to-end quality of service with a network of loosely coupled components, with only basic means of prioritization and flow control. This talk explores the similarity of such networks with typical Erlang-based message-passing architectures, and argues that a robust way of managing high-load conditions is to regulate at the input edges of the system, and sampling known internal choke points in order to dynamically maintain optimum throughput. A selection of typical overload conditions are discussed, and a new load regulation framework -- JOBS -- is presented, together with examples of how such overload conditions can be mitigated.