Erlang OTP Express

Event date: 
Monday, September 23, 2013 - 09:00 to Wednesday, September 25, 2013 - 18:00
San Francisco, US


Target Audience: Support and Test Engineers, Software Developers,


  • Use existing Design Patterns supported by Erlang and OTP.
  • Apply Generic Behaviours, Finite State Machines and Event handler Patterns.
  • Use the Supervisor and Applicaton Behaviours Patterns.
  • Write your own Design Patterns.
  • Structure large Erlang based systems.

Course Contents:

  • Introduction: This section introduces the need and advantages of using middleware in the developmentof massively concurrent, distributed, fault tolerant real time systems in Erlang. It looks at Erlang's evolution, and how it helped form OTP. Further this gives an overview of the components that make up OTP. They are Erlang, a set of behaviours, and rules and design principles to use them. OTP comes with many ready built applications and tools useful for large scale software design. They are introduced in this section.
  • Behaviours: Erlang processes display similar properties. In the Open Telecom platforms, these properties have been abstracted in a group of generic library modules, also called OTP behaviours. This section introduces the concept of behaviours, and through examples of abstraction, shows their need and advantages.
  • Generic Servers: Generic servers implement the Client-Server behaviours in OTP. This section introduces the most commonly used behaviour in Erlang based applications.
  • Finite State Machines: The finite state machines behaviour in Erlang is used to implement state transitions in processes based on incoming events. This behaviour is commonly used when implementing protocol stacks.
  • Supervisors: Supervisors are a behaviour whose only task is to start other Erlang behaviours and monitor them for abnormal termination. This is a vital section in understanding start and restart strategies in Erlang.
  • Event Handlers: Erlang has ready built event managers. Event handlers are behaviours who subscribe to events sent to specific managers, allowing several actions to take place based on one single event. Event handlers can be changed on the fly, as well as added or deleted from a specific manager.
  • Applications: This section introduces the application behaviour, used for packaging Erlang resources. Resources can vary from libraries to process clusters, and can be configured to run on a single processor or be distributed on a set of nodes.
  • Special Processes: There will be times where we want to implement our own behaviours, or for efficiency reason, use simple Erlang processes. This section looks behind the scenes on how behaviours are implemented, and explains how to implement your own.
  • System Principles: The System Principles section describes how Erlang applications are coupled together in a release and started as a whole. Sections include creating release files, bundling up the software including the virtual machine, and running Erlang on target and embedded hosts.


Robert Virding is one of the co-inventors of Erlang and a founding member of the Ericsson Computer Science Lab. He developed the original system design, wrote the current compiler and contributed many of the original libraries. While at the lab, he also worked on the implementation of logic and functional languages and on garbage collection. With Joe Armstrong and Mike Williams, he co-authored Concurrent Programming in Erlang, the first Erlang book published by Prentice-Hall. He is also a co-founder of the first Erlang start-up, BlueTail, acquired by Nortel Networks in what was at the time the largest Swedish private company acquisition. Robert works as a principal language expert at Erlang Solutions, is active in research, and in this role regularly teaches and gives presentations at conferences worldwide.

To find out more, click on the Register button below:

For more information and registration, please contact us at or call us on +44 20 7456 1020