Gossip Glomers

A series of distributed systems challenges brought to you by Fly.io.

Let’s Get Started

We’ve teamed up with Kyle Kingsbury, author of Jepsen, to build this series of distributed systems challenges so you can try your hand and see how your skills stack up.

The challenges are built on top of a platform called Maelstrom, which in turn, is built on Jepsen. This platform lets you build out a “node” in your distributed system and Maelstrom will handle the routing of messages between the those nodes. This lets Maelstrom inject failures and perform verification checks based on the consistency guarantees required by each challenge.

The documentation for these challenges will be in Go, however, Maelstrom is language agnostic so you can rework these challenges in any programming language.

Got Stuck? Need Help?

It’s no secret that distributed systems are infuriating and difficult. Even the best developers in the world can be brought to their knees in the face of cluster failures. If you get stuck on these challenges or want to see how other folks are solving them, checkout the #dist-sys-challenge tag on the Fly.io Community Discourse.

Let’s get started

Can’t wait to start? The Echo challenge will get you up and running with a basic echo request/response to help you understand how Maelstrom works and to make sure you have everything running correctly.

  1. Echo

    Read More About Echo
  2. Unique ID Generation

    Read More About Unique ID Generation
  3. Broadcast

    Read More About Broadcast
  4. Grow-Only Counter

    Read More About Grow-Only Counter
  5. Kafka-Style Log

    Read More About Kafka-Style Log
  6. Totally-Available Transactions

    Read More About Totally-Available Transactions