# Trinity Trinity is a simulation testing library for the Elixir programming language. Trinity can simulate the execution of a distributed Elixir application. Processes are deterministically scheduled, with only one process executing at any given time. This scheduling is done entirely in "user-space"; there are no modifications to the runtime (BEAM) itself. Trinity reimplements a number of OTP primitives in order to guarantee deterministic execution. A simulated clock and filesystem are provided, and Elixir's default PRNG is deterministically seeded when a process is spawned. Trinity also includes tools for (simulated) fault injection, logging, and hashing (to check for determinism bugs). ## Status Trinity is experimental and under active development. Documentation and an eventual release are planned.