Karl Nilsson

Karl wrestles distributed rabbits for a living

Karl comes from a .NET background (C# / F#) where he worked mostly on distributed systems. He is an avid proponent of functional programming. He now works for Pivotal on the RabbitMQ messaging broker.

Past conferences

Karl Nilsson
Code BEAM Lite Berlin 2018

Ra: a Raft implementation

In this talk Karl will introduce the Ra library, an open source Raft implementation by Team RabbitMQ. He will go through the reasons for wanting to use Raft inside RabbitMQ, the design requirements that came out of that and how they ended up implemented in Ra. He will also cover how to use Ra to implement our own replicated state machines.


  • Introduce Ra 
  • Explain Ra's design decisions
  • Outline how Ra integrates with RabbitMQ
  • Explain how Ra is used
Karl Nilsson
Code BEAM STO 2019
17 May 2019
13.40 - 14.25

Make a distributed toolbox with Ra

Ra is an implementation of the Raft consensus protocol by Team RabbitMQ. In RabbitMQ, Ra is used to implement a consistent replicated queue but that isn't all that Ra can be used for. This talks will be a practical session on how to implement consistent distributed system essentials, such as replicating a key-value stores, leader election processes, lock servers and other coordination services on top of the Ra library.


Share knowledge of the Ra library and how to achieve common distributed system patterns using it.


People who write distributed systems and are interested in strong consistency and the trade-offs involved in writing and maintaining such systems.