awesome-deterministic-simulation-testing icon indicating copy to clipboard operation
awesome-deterministic-simulation-testing copied to clipboard

A curated list of awesome deterministic simulation testing resources 😎

Awesome Deterministic Simulation Testing

A curated list of awesome deterministic simulation testing resources.

Awesome

Case studies and blogs

🎞️ "Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson

An overview of the deterministic simulation testing in FoundationDB, influential for many following cases.

BUGGIFY

An overview of BUGGIFY macro from FoundationDB.

What's the big deal about Deterministic Simulation Testing?

(Mostly) Deterministic Simulation Testing in Go

How we used WASM and some Go runtime modifications to run deterministic simulation tests against FrostDB

sled simulation guide (jepsen-proof engineering)

This guide contains basic information about deterministic testing of distributed, message-based, event-driven, or actor systems.

A blog series on Deterministic simulation from RisingWave

Deterministic Simulation: A New Era of Distributed System Testing (Part 1 of 2)

This article discusses the background and principles of deterministic simulation, introduce our deterministic testing framework Madsim, and share our experience applying deterministic testing to RisingWave.

Applying Deterministic Simulation: The RisingWave Story (Part 2 of 2)

Delve into the world of deterministic simulation as we introduce Madsim, a cutting-edge testing framework built on Rust's asynchronous programming ecosystem. Join us in this article as we unravel the fascinating utilization of deterministic simulation in RisingWave, a cloud-native distributed database.

Testing sync at Dropbox

… and how we rewrote the heart of sync with confidence.

Case studies of Antithesis

Deterministic Simulation Testing at TigerBeetle

Deterministic Simulation Testing (DST) is one of our favorite parts about TigerBeetle, and it is a key way that we improve the system's reliability.

Deterministic Simulation Testing at Resonate

At Resonate, we consider deterministic simulation testing (DST) to be a cornerstone of our mission to build correct and reliable distributed systems. While an increasing array of projects, including Foundation DB, TigerBeetle DB, and Resonate itself, have embraced DST, along with companies like Antithesis providing platforms dedicated to this approach, comprehensive information remains limited.

Hiisi by Pekka Enberg

Hiisi is a proof of concept libSQL written in Rust following TigerBeetle-style with deterministic simulation testing.

The Twitter thread.

🎞️ Deterministic simulation testing talk by Pekka Enberg

In this session, Pekka Enberg will focus on the topic of deterministic simulation testing.

Software

Antithesis

Antithesis is a continuous reliability platform that autonomously searches for problems in your software within a simulated environment. Every problem we find can be perfectly reproduced, allowing for efficient debugging of even the most complex problems.

MadSim

A deterministic simulator for distributed systems in Rust.

MadRaft - the labs of Raft consensus algorithm based on MadSim.

Turmoil

A framework for testing distributed systems, which provides deterministic execution by running multiple concurrent hosts within a single thread.

Unthread

An implementation of POSIX threads API designed for fuzzing and debugging of concurrent programs written in C/C++ languages.