Let It Crash: Building Fault‑Tolerant Apps with Erlang Supervision Trees
Discover how Erlang’s OTP supervision trees and the "Let It Crash" philosophy let you build self‑healing distributed systems without defensive error handling.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Discover how Erlang’s OTP supervision trees and the "Let It Crash" philosophy let you build self‑healing distributed systems without defensive error handling.
Learn how to build a minimal OTP supervision tree in Erlang: requirements, design, trust boundaries, operational checks, failure modes, and when to redesign.
An architecture note on wrapping Erlang libraries from Gleam: private @external declarations, validating wrappers, tagged-tuple error contracts, and when to switch to OTP actors instead.
How OTP supervisors restart failed workers: one_for_one vs one_for_all vs rest_for_one, a worked supervisor module with map child specs, intensity/period escalation, and the state-loss and crash-loop mistakes to avoid.
A concise architecture note that outlines requirements, the minimal supervision‑tree design, trust boundaries, operational checks, failure modes, and triggers for redesign when using Erlang/OTP for resilient services.
Supervision strategy is a claim about which Erlang processes depend on which. Pick it from the dependency graph, then confirm it with a deliberate kill on a test node.
Decide whether to compile Gleam to the Erlang BEAM VM or to JavaScript by weighing concurrency, fault tolerance, and deployment constraints. A side‑by‑side table, trade‑off analysis, and a concrete HTTP endpoint test guide help you pick the right target for your service.
Erlang’s lightweight processes enable millions of concurrent tasks with minimal memory. Learn how to build a fault‑tolerant counter server, watch it recover from crashes, and understand key trade‑offs like mailbox size, data copying, and supervision loops.
A technical decision guide for Erlang/OTP state management, comparing ETS, persistent_term, and the process dictionary based on latency, concurrency, and mutability.