jepsen-io/maelstrom

A workbench for writing toy implementations of distributed systems.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 29 minutes ago
Added to GitGenius on September 18th, 2026
Created on April 12th, 2017
Open Issues & Pull Requests: 18 (+0)
GitHub issues: Enabled
Number of forks: 213
Total Stargazers: 3,689 (+0)
Total Subscribers: 26 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.2 hours
Mean response time: 112.6 days
90th percentile: 675.2 days
Tracked items: 6

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 658 days
Stale 30+ days: 3
Stale 90+ days: 3

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Maelstrom is a workbench for learning distributed systems by writing your own implementations and testing them against standardized test suites.

The tool addresses the challenge of understanding distributed systems through hands-on implementation. It provides a framework built on the Jepsen testing library that defines test suites for various distributed system patterns—such as commutative sets or transactional key-value stores—and allows you to write implementations in any language that can communicate via JSON over STDIN and STDOUT. Maelstrom handles the infrastructure: it runs your servers, sends requests, simulates network behavior, and validates that clients observe expected outcomes.

Maelstrom suits developers learning distributed systems through practical experimentation rather than theory alone. It works well for anyone wanting to implement algorithms like Paxos, Raft, or CRDTs in a controlled environment. The tool is particularly valuable because it lets you experiment with realistic failure modes—simulated latency, message loss, and network partitions—while providing rich observability. Timeline visualizations show concurrency structure, Lamport diagrams reveal message flow, and the tool can generate minimal examples of consistency anomalies when safety properties are violated. The checker can verify properties up to strict serializability. While designed for toy systems, the tool performs well enough to handle simulated clusters of 25 or more nodes and can process tens of thousands of network messages per second on multi-core hardware.

The project maintains a comprehensive guided curriculum covering echo servers, broadcast algorithms, CRDTs, transactional systems, and Raft, with reference documentation for the protocol and available workloads. Development activity shows sustained attention to both the core testing framework and the educational materials that accompany it.