Andrea Leopardi

Andrea Leopardi

Elixir Core Team Member

Concurrent and Resilient Connections to Outside the BEAM

In Elixir applications, there’s often the need to have persistent connections to external services such as TCP connections to database servers. In this talk, we’ll explore how to build such connections in a way that takes advantage of some of Elixir’s most appreciated features: concurrency and resiliency. We’ll see how to make such connections concurrent, e.g., making them asynchronous or using pooling, and how to make them resilient by reacting to network failures and disconnections. We’ll reserve some time to explore TCP connections in particular and talk about dealing with binary protocols.

Talk objectives

After this talk, you’ll be able to take advantage of the techniques I discussed to build connections to external services in your application or in libraries you’re developing (database drivers are great candidates for these techniques).

Target audience

This talk is directed at anyone who has just enough Elixir experience to be able to understand the language syntax and core principles (such as its concurrency models) and that is familiar with the basics of OTP (such as GenServers).



Andrea is a programming enthusiast with a soft spot for functional programming and beautiful code. He loves learning new stuff. He strongly believes in accessible culture and education and in open-source software. He is active in the Elixir community and uses Elixir almost exclusively for work purposes.

Github: whatyouhide

Twitter: @whatyouhide