Christopher Meiklejohn talks through a history of chain replication, starting with the original work from 2004 by van Renesse and Schneider up to new and unique designs of chain replication.
Diego Ongaro introduces Raft, a consensus algorithm for managing a replicated log by separating the key elements of consensus and reducing the number of states that must be considered.
Fangjin Yang covers common problems and failures seen with distributed systems, and discusses design patterns that can be used to maintain data integrity and availability when everything goes wrong.
The authors discuss how Spring for Apache Hadoop can make developing workflows with Map Reduce, Spark, Hive and Pig jobs easier, and using Spring Cloud to build distributed apps for YARN.
Christian Tzolov shows different integration approaches between HAWQ and GemFire, showing using Spring XD to ingest GemFire data into HDFS and using Spring Boot to implement a RESTful proxy for HAWQ.
Oren Eini discusses the building blocks of a reliable, transactional distributed database, covering ACID compliance, consistency, failure handling, monitoring, management, and more.
This talk presents Hazelcast, an open-source distributed Java in-memory container that allows multiple processes to share data using standard Java APIs such as Maps, Sets and Lists.
Ines Sombre and Caitie McCaffrey offer a guided tour of papers from past and present research that have reshaped the way we think about building large scale distributed systems.
Anil Madhavapeddy introduces the Irmin library by means of a functional queue, shows how the Git mirroring works, and then demonstrates some more complex applications.
Natalia Chechina outlines features of actor and functional programming models, and the reason these models attract so much interest in parallel, concurrent, and scaling world.
Crista Lopes demos writing the same program using multiple styles, showcasing the richness of human computational thought and the need to avoid being stuck with one or two styles for life.
Matt Heath discusses how circuit breakers and other similar patterns can be used to increase reliability in distributed systems such as Go-based microservice platforms.