You are viewing content from a past/completed QCon -


Distributed Systems Theory for Practical Engineers

Distributed Systems are a complex topic. There's abundant research about it but sometimes it is hard for a beginner to know where to start. I would like to outline the main concepts of distributed systems, so the interested person can have a clear path on how to start their own research as well. In this talk I will review the different models: asynchronous vs. synchronous distributed systems; message passing vs shared memory communication; failure detectors and leader election problems; consensus and different kinds of replication.

I will also review a series of books on distributed systems in order to recommend the best one according to the topics we would like to learn about, or the problems we would like to solve. The goal of the talk is to set a good foundation for people interested in learning more about distributed systems.

Talk objectives: When learning about Distributed Systems there are lot of books and papers to chose from, with many of them having titles that are hard to understand. It's difficult then to judge their relevance to our interests if we don't know the topic already. The goal of the talk is to lay a common ground for Distributed Systems so everyone can benefit from the current research on the topic.

Target audience: Engineers interested in getting started with Distributed Systems.


Alvaro Videla

Distributed Systems Engineer

Alvaro Videla works as a Distributed Systems Engineer and previously was a Core Developer for RabbitMQ. Before moving to Europe he used to work in Shanghai where he helped building one of Germany biggest dating websites. He co-authored the book "RabbitMQ in Action" for Manning Publishing. Some of...

Read more
Find Alvaro Videla at:


Fleming, 3rd flr.


Modern Distributed Architectures


Distributed SystemsArchitecture


From the same track

SESSION + Live Q&A Cloud Dataflow

Straggler Free Data Processing in Cloud Dataflow

One of the main causes of performance problems in distributed data processing systems (from the original MapReduce to modern Spark and Flink) is "stragglers." Stragglers are parts of the input that take an unexpectedly long time to process, delaying the completion of the whole job, and wasting...

Eugene Kirpichov

Cloud Dataflow Sr SE @Google

SESSION + Live Q&A Event Driven Architecture

Spotify's Reliable Event Delivery System

Spotify’s event delivery system is one of the foundational pieces of Spotify’s data infrastructure. It has a key requirement to reliably deliver complete data with a predictable latency and make it available to Spotify developers via well-defined interface. Delivered data is than used to...

Igor Maravic

Software Engineer @Spotify

SESSION + Live Q&A Observability

Realtime & Personalized Notifications @Twitter

Twitter Notifications Infrastructure enables hundreds of millions of users to stay informed about what’s going on in their Twitter world. Our systems process large volumes of data (aka the Twitter firehose) and deliver realtime and personalized notifications to all kinds of users, ranging from...

Gary Lam

Tech Lead Notifications, Staff Software Engineer @ Twitter

Saurabh Pathak

Leads Notifications Team @Twitter

SESSION + Live Q&A Open Space

Distributed Architectures Open Space


Causal Consistency For Large Neo4j Clusters

In this talk we'll explore the new Causal clustering architecture for Neo4j. We'll see how Neo4j uses the Raft protocol for a robust underlay for intensive write operations, and how the asynchronous new scale-out mechanism provides enormous capacity for very demanding graph workloads. We'll...

Jim Webber

Chief Scientist @Neo4j

View full Schedule