JEPSEN

Distributed Systems Safety Research

About Jepsen

Jepsen aims to improve the safety of distributed databases, queues, consensus systems, etc. We maintain an open source library for safety testing, and publish free, in-depth analyses of specific systems. In each analysis we explore whether the system lives up to its documentation’s claims, file new bugs, and suggest recommendations for operators. In addition to paid analysis, Jepsen offers technical talks, training classes, and consulting services.

Jepsen pushes vendors to make accurate claims and test their software rigorously, helps users choose databases and queues that fit their needs, and teaches engineers how to evaluate distributed systems correctness for themselves.

News

Recent research, analyses, and announcements.

Jepsen worked with Orkes to test Orkes Conductor, a workflow orchestration platform. We discovered that tasks could be delayed or concurrently executed more often than expected, found four minor issues when starting workflows, and three serious safety errors in which acknowledged workflows could be abandoned, forgotten, or marked as completed without ever executing. All three have been addressed in version 5.5.6, as have two of the issues with starting workflows, and a bug causing tasks to be attempted concurrently more often than needed.

Jepsen 0.3.15

2026-10-16

Jepsen 0.3.15 is now available. This release fixes a major safety bug in Elle’s rw-register workload, which in turn was caused by two issues with the Bifurcan data structure library. These are now fixed upstream. The control.util/grepkill! function was also nonfunctional, and is now fixed. There are also a few minor dependency bumps, and better support for using roles with generators that depend on (:nodes test).

Jepsen 0.3.14

2026-09-22

Jepsen 0.3.14 is now available on GitHub and Clojars. This release focuses on generator performance and correctness, and introduces several new generators. It also improves the web interface, and fixes some long-standing issues with time zones.

From the Antithesis Resilience Meetup in New York City back in May, a retrospective talk on the last thirteen-odd years of testing distributed systems, the big ideas behind Jepsen testing, and the importance of software quality as code generation becomes faster and cheaper. Slides are here.

We have several tricks for efficiently checking the consistency of transactions over primary keys, but what are we to do about predicates? Database histories with predicates are particularly tricky because their correctness hinges on the entire universe of objects, not just those objects which matched the predicate. When a query for all even objects returns the empty set, is that because it selected the unborn version of x, or one in which x = 1? There are many possibilities, each resulting in a different dependency graph. The proliferation of these graphs may be intractable, unless we find a way to prove exactly which invisible version was selected.

If you’d like to talk about this problem, come to Bugbash 2026 on April 22-24th, in Washington, DC. Jepsen’s seminar, “Paranormal forms”, will introduce the problem of predicate checking, suggest a few possibilities, then open the floor to discussion.

All news from Jepsen…