Lockstep — find race conditions in BEAM code and replay them on demand
Lockstep is a concurrency test runner for the BEAM. You write what looks like an ExUnit test; it runs many times under controlled scheduling, and when it finds a race it gives you the exact schedule to replay.
Real bugs surfaced building it: Phoenix.Tracker pre-fc5686f, NimblePool pre-e18f45f, Hammer’s Atomic.FixWindow.inc/4.
Features:
- 5 scheduling strategies + trace replay + counterexample shrinking
- Drop-in OTP wrappers (GenServer, Task, Registry, Supervisor, ETS, Atomics, …)
- AST rewriters for Elixir + Erlang — works on unmodified upstream source
-
Multi-node
Lockstep.Clusterwith partition / heal - Optional Anthropic Claude integration to explain failing traces
