Entropy Glossary

View Source

Core 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/1 on 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 ZombieRegistry process 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 the Selector (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 Logger to 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 the Entropy application itself).
  • Immunity (Dynamic): Processes granted temporary immunity by the user via the ImmunityRegistry to protect critical transactions.
  • Entropy Value: A floating-point number (0.0 <= x < 1.0) used as a seed for the weighted selection algorithms.