BEAM Architecture Handbook
summary
Practical rules for BEAM apps: use processes for isolation and concurrency but avoid raw spawn and prefer GenServer, Task.async/await and Task.async_stream (example: max_concurrency 20) for background, parallel and timeboxed work (Task.yield + shutdown). Design supervisors on a whiteboard, nest them so a top-level rest_for_one can restart worker subtrees while workers use one_for_one. Build connection managers that back off and use name-based pools or Registry instead of single bottleneck processes. Classify requests as at-most-once, at-least-once (retry + idempotence) or exactly-once (IDs + stored state).
AI-written summary · about
chapters (11)
- 0:00Start
- 3:54processes
- 13:28SUPERVISION
- 14:02WHITE BOARD DESIGN
- 14:36STRATEGIES
- 20:19CONNECTION HANDLING
- 29:14connection - Pool.checkout (pool)
- 39:17DATA STORAGE
- 41:423 kinds of requests
- 44:38EXACTLY ONCE
- 46:49RESOURCES
related talks
02m12 yrs supporting Software Architecture teaching with BEAMs
45m12 years supporting Software Architecture teaching with BEAMs
40mKeynote: Fireside Chat on code design
40mComparison and Commentary on "Application Operating System"
47mKeynote: My BEAM history
37mModern Abstractions and the Web, and avoiding Pitfalls because Life is short
24mArchitecting the Unconventional: A Case Study in Software Design
40mEverything Will Flow
