Ulrqjojvcdg1uxhldfdl
2 DAY COURSE

Fundamentals of Jepsen with Kyle Kingsbury

Topics covered at JEPSEN-01-02

Dates coming soon

Do you want to be able to test your software rigorously and make accurate claims? Help your users choose databases and queues that fit their needs? Join Kyle Kingsbury on this exciting two day course and learn how to evaluate distributed system correctness for yourself!

Over two days you will be guided through writing a Jepsen test: from a fresh cluster to finding a consistency anomaly in an open-source database. Beginning with an introduction to the Clojure programming language, you will discuss the architecture of the Jepsen library, spend the bulk of the class writing a test itself, and conclude with general discussion of distributed systems test design, system modelling, and verification techniques.

Learn how to:

  • Write a Jepsen test from scratch
  • Design a model of a concurrent system
  • Explore concurrent histories
  • Interpret failing results
  • Improve reproducibility

What the community says

"Aphyr knows his stuff inside out and is able to communicate it well."

Andy Dwelly, Pontiflex Software on 22nd Mar 2018

About the Author

Kyle Kingsbury

Kyle Kingsbury, a.k.a "Aphyr", is a computer safety researcher working as an independent consultant. He is the author of the Riemann monitoring system, the Clojure from the Ground Up introduction to programming, and the Jepsen series on distributed systems correctness. He grills databases in the American Midwest.

Day One

  • The Clojure language
  • Jepsen overview
  • Scaffolding
  • Database setup
  • Modeling state machines
  • Writing a client

Day Two

  • Interpreting results
  • Introducing failures
  • Tuning tests to reproduce failures faster
  • Optimizing tests
  • Advanced techniques

Audience

This class is for anyone who uses or builds distributed systems, and wants to experimentally evaluate their safety properties.

Prerequisites

Prior programming experience and proficiency at the command line are strongly encouraged. If you have Clojure experience that's great, but if not, don't worry! You'll go over the language at the start of the class, and hands-on assistance will be provided throughout.

You will need some basic Linux CLI experience and proficiency with an editor such as Vim, Emacs or nano.

Bring your own hardware

Delegates are required to bring their own laptop to participate in this course. You will need a machine capable of running an SSH client.

Overview

Do you want to be able to test your software rigorously and make accurate claims? Help your users choose databases and queues that fit their needs? Join Kyle Kingsbury on this exciting two day course and learn how to evaluate distributed system correctness for yourself!

Over two days you will be guided through writing a Jepsen test: from a fresh cluster to finding a consistency anomaly in an open-source database. Beginning with an introduction to the Clojure programming language, you will discuss the architecture of the Jepsen library, spend the bulk of the class writing a test itself, and conclude with general discussion of distributed systems test design, system modelling, and verification techniques.

Learn how to:

  • Write a Jepsen test from scratch
  • Design a model of a concurrent system
  • Explore concurrent histories
  • Interpret failing results
  • Improve reproducibility

What the community says

"Aphyr knows his stuff inside out and is able to communicate it well."

Andy Dwelly, Pontiflex Software on 22nd Mar 2018

About the Author

Kyle Kingsbury

Kyle Kingsbury, a.k.a "Aphyr", is a computer safety researcher working as an independent consultant. He is the author of the Riemann monitoring system, the Clojure from the Ground Up introduction to programming, and the Jepsen series on distributed systems correctness. He grills databases in the American Midwest.

Program

Day One

  • The Clojure language
  • Jepsen overview
  • Scaffolding
  • Database setup
  • Modeling state machines
  • Writing a client

Day Two

  • Interpreting results
  • Introducing failures
  • Tuning tests to reproduce failures faster
  • Optimizing tests
  • Advanced techniques
Audience

Audience

This class is for anyone who uses or builds distributed systems, and wants to experimentally evaluate their safety properties.

Prerequisites

Prior programming experience and proficiency at the command line are strongly encouraged. If you have Clojure experience that's great, but if not, don't worry! You'll go over the language at the start of the class, and hands-on assistance will be provided throughout.

You will need some basic Linux CLI experience and proficiency with an editor such as Vim, Emacs or nano.

Bring your own hardware

Delegates are required to bring their own laptop to participate in this course. You will need a machine capable of running an SSH client.