Erlang 101 - Your Intro to Actor and Multi-Core Programming

Francesco Cesarini (Erlang Solutions Ltd)
Software Architecture
Location: D136
Average rating: ****.
(4.37, 19 ratings)


Erlang’s basic features are a perfect match for massively concurrent, distributed cloud environments. Being rooted in an actor model with no shared memory, the complexity of multi-core programming is hidden from the developers, allowing them to focus on the program. This tutorial will introduce Erlang and its actor model, explaining how it is positioning itself to win the multi-core challenge.

Basic & Sequential Erlang

This section deals with Erlang data types and pattern matching. Functions, and modules are discussed. It continues by introducing recursion, with a special emphasis on different recursive patterns, including tail recursion.

Concurrent Programming

This section describes the creation of processes and their life span. It looks at sending and receiving messages, selective reception, and passing data in the messages. It continues with the various uses of time outs and registering processes, and terminates by showing the generic process code structure. We conclude this section by introducing the simple but powerful error handling mechanisms in processes. It looks at process links, exit signals and their propagation semantics.

Multi-Core Programming
This section guides the users through examples and scalability issues when writing programs you expect to double in speed when doubling your cores. It covers tools and programming techniques you can use to detect and avoid bottlenecks.

In order to get the most out of this tutorial, you must have a good grasp of other programming languages. Having dabbled with is not necessary, but will help. This is a hands on tutorial.

* Before arriving, download and install Erlang and get the Erlang mode for your favorite editor working. Erlang (source or binaries) can be downloaded at

QUESTIONS for the speaker?: Use the “Leave a Comment or Question” section at the bottom to address them.

People planning to attend this session also want to see:

Photo of Francesco Cesarini

Francesco Cesarini

Erlang Solutions Ltd

Francesco Cesarini is the founder and Technical Director of Erlang Solutions. He has used Erlang on a daily basis since 1995, starting his career as an intern at Ericsson’s computer science laboratory, the birthplace of Erlang. He moved on to Ericsson’s Erlang training and consulting arm where he worked on the R1 release of OTP, applying it to turnkey solutions and flagship telecom applications. In 1999, soon after Erlang was released as open source, he founded what has today become Erlang Solutions. With offices in seven countries and three continents, they have become the go to partners for scalable, highly available end to end solutions, running conference sand providing support, consulting, training, certification and systems development. As Technical Director, Francesco is leading the development and consulting teams at Erlang Solutions adb is responsible for the product and research strategies of the company. He is also the co-author of Erlang Programming, a book published by O’Reilly. He lectured at the IT University of Gothenburg for over a decade, and since 2010, teaches the concurrency oriented programming course at Oxford University. You can find him rambling on twitter using the handle @FrancescoC.

Comments on this page are now closed.


Picture of Shirley Bailes
Shirley Bailes
07/26/2013 10:22am PDT

@Luciano, the ZIP file is posted near the top of this page.

Picture of Luciano Afranllie Ruiz
Luciano Afranllie Ruiz
07/26/2013 10:03am PDT

Francesco, I can not find slides there…

Picture of Francesco Cesarini
Francesco Cesarini
07/25/2013 6:25pm PDT

Hi All,

Many thanks for attending the Erlang 101 tutorial. Many have contacted me asking where to find more information on Erlang and what the next steps are. First things first, however. The slides from the tutorial are here:

For those of you who are curious to learn more, some of the online resources I can recommend include

  • Learn You Some Erlang for Great Good, an online book covering the basics:
  • Erlang Central, a community site site with chat, calendars, job posts, videos and the largest collection of tutorials:
  • We are adding forums to Erlang Central. Until then, if you have questions, the best place to ask is the Erlang Questions mailing list or stack overflow.
  • Oreilly has two great books, one by @simonstl which an overview of the basics, plus one which I co-authored, which goes into the language details. For either book, use discount code authd to get 50% off ebooks and 40% off printed books. &
  • For events (Happening this year in Berlin, Chicago, New York, London and Tel Aviv), and major events next year (San Francisco & Stockholm) have a look at
  • For e-learning and training, have a look at

If you have any questions, drop me a line through this site of via twitter on @FrancescoC

Thanks again! Francesco

Ernesto Mendoza
07/25/2013 12:03pm PDT

I really enjoyed the tutorial and learnt a lot from it.

Francesco, you mentioned you would upload your slides, but I can’t find them. Any chance you could upload them again or see why they are not online? I’ll buy your book anyway, but having the slides would be helpful.


Picture of Francesco Cesarini
Francesco Cesarini
07/23/2013 6:25pm PDT

Hi Augustina, it is unfortunately always like that when you have a group of 80+. Had I spent 30 minutes on sequential programming, those not up to speed on FP would have gotten frustrated and been completely lost. It is a juggling act where I move more quickly or slowly based on the feedback I get from asking questions.

Picture of Augustina Ragwitz
Augustina Ragwitz
07/23/2013 4:46pm PDT

This tutorial was very ambitious by declaring itself as a “101” session that would also cover advanced topics. I would recommend either ask that attendees already have an understanding of functional programming and focus on the Multicore/Concurrency material, or make this a “Functional Programming with Erlang” session and just touch on those things at the end if you have time.

I was interested in the Concurrency and Multicore sections of this talk and I was frustrated by the amount of time the speaker had to spend on explaining basic functional programming concepts to the audience. I don’t know Erlang syntax, but as someone who knows functional programming, a 30-minute speed-through would have been sufficient, rather than the hour-and-a-half spent on basic syntax I could grok from the web in a fraction of the time.

On a positive note, the speaker was very knowledgeable and passionate about the topic. He was very engaged with the audience and attentive to the needs of participants. I enjoyed his presentation style and I actually learned a few things!


Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or

Contact Us

View a complete list of OSCON contacts