Entropy Glossary
View SourceCore Concepts
- Grey Failure: A system state where a component is present in the process registry (PID exists) but is functionally unresponsive (deadlocked, thrashing, or suspended).
- Zombification: The act of calling
erlang:suspend_process/1on a target PID. This removes the process from the scheduler's run queue while retaining its memory and mailbox. - Stochasticity: The use of controlled probability (rather than pure randomness) to ensure fair victim selection over infinite time.
- Sovereignty: The enforcement mechanism that ensures the Scheduler only executes on the specifically targeted node, preventing accidental chaos in a clustered environment.
- Dead Man's Switch: The safety guarantee provided by the BEAM VM. If the
ZombieRegistryprocess terminates, the VM automatically releases all process suspension locks held by it, instantly resuming all Zombies.
System Components
- Sanctuary: The domain responsible for target identification. It includes
the
Census(process discovery) and theSelector(filtering and decision logic). - Physics: The simulation layer that manages the interface between the tool and the BEAM VM's reality (Time, CPU, Memory).
- Circuit Breaker: The safety valve that polls system resources (CPU, RAM). It possesses the authority to "Veto" injection cycles if the node is under stress.
- Axiomatic Logger: A synchronous, blocking reporting mechanism that
bypasses the standard Elixir
Loggerto guarantee event emission during system instability. - Census: A GenServer that maintains a cached, optimized view (Tuple) of all living processes to support O(1) selection.
Roles & Entities
- Victim: A target PID selected for fault injection that is currently healthy.
- Zombie: A struct representing a process that has been successfully suspended. It is tracked in the Registry to ensure it can be located and resumed.
- Source: An abstraction layer for non-deterministic inputs (Random Number Generation, System Time) to enable deterministic testing.
Configuration & States
- Immunity (Static): Processes that are intrinsically protected by
hard-coded rules (e.g.,
:kernel,:init, or theEntropyapplication itself). - Immunity (Dynamic): Processes granted temporary immunity by the user via
the
ImmunityRegistryto protect critical transactions. - Entropy Value: A floating-point number (
0.0 <= x < 1.0) used as a seed for the weighted selection algorithms.