School of Computing

Erlang behaviours: Programming with process design patterns

Francesco Cesarini and Simon Thompson

In Zoltn Horvth, Rinus Plasmeijer, and Vikria Zka, editors, Central European Functional Programming School, CEFP 2009, volume 6299 of Lecture Notes in Computer Science, pages 182-196. Springer, November 2010.


Erlang processes run independently of each other, each using separate memory and communicating with each other by message passing. These processes, while executing different code, do so following a number of common patterns. By examining different examples of Erlang-style concurrency in client/server architectures, we identify the generic and specific parts of the code and extract the generic code to form a process skeleton. In Erlang, the most commonly used patterns have been implemented in library modules, commonly referred to as OTP behaviours. They contain the generic code framework for concurrency and error handling, simplifying the complexity of concurrent programming and protecting the developer from many common pitfalls.

Download publication 324 kbytes (PDF)

Bibtex Record

author = {Francesco Cesarini and Simon Thompson},
title = {Erlang Behaviours: Programming With Process Design Patterns},
month = {November},
year = {2010},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {inproceedings},
    submission_id = {29101_1289942319},
    booktitle = {Central European Functional Programming School, CEFP 2009},
    editor = {Zoltn Horvth and Rinus Plasmeijer and Vikria Zka},
    volume = {6299},
    series = {Lecture Notes in Computer Science},
    publisher = {Springer},
    refereed = {yes},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014