Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Index

This page is a map of the book. Each entry links to one chapter and says what it covers.

Quick Start Routes

QuestionStart here
I am a coding agent and I must add a simulation harnessGuide for AI Agents
What is moonpool?The Case for Simulation, then Why Moonpool Exists
What is new in moonpool?State of Moonpool
How do I write my first simulation?Your First Simulation
How can one code base run in production and in simulation?Same Code in Production and Simulation
How do providers work?The Provider Pattern
How do I add faults?Chaos in Moonpool
How does my code mark a place where a fault is interesting?hint!: Naming Fault Sites and Buggify
How do I get a different fault mix on each seed?Swarm Testing: Masks and Budgets
How do I simulate slow machines and gray failures?CPU Time and Gray Failures
How do I take down a whole rack?Correlated Outages and Self-Crashes
How do I use assertions?Assertions: Finding Bugs
A seed failed. What now?Debugging a Failing Seed
How do I test an existing app (axum, tonic, hyper)?Using moonpool-sim Standalone
How do I ship this to production?Using Providers in Production
How do processes call each other?Typed RPC with moonpool-rpc
I need a durable logA Crash-Aware Journal
How does multiverse exploration work?Multiverse Exploration
Which knobs exist and what are their defaults?Configuration Reference and Fault Reference

Foreword

Part I: Why Simulation Testing

Part II: Foundations

Part III: Building Simulations

Part IV: Simulating Existing Applications

Part V: Raw Network Simulation

Part VI: Building on Top

Appendix