# Josh Segall - The Isolation Trap (Highlights)

## Metadata
**Review**:: [readwise.io](https://readwise.io/bookreview/59008982)
**Source**:: #from/readwise #from/reader
**Zettel**:: #zettel/fleeting
**Status**:: #x
**Authors**:: [[Josh Segall]]
**Full Title**:: The Isolation Trap
**Category**:: #articles #readwise/articles
**Category Icon**:: 📰
**URL**:: [causality.blog](https://causality.blog/essays/the-isolation-trap/)
**Host**:: [[causality.blog]]
**Highlighted**:: [[2026-03-15]]
**Created**:: [[2026-03-21]]
## Highlights
- Fred Hébert (author of *Erlang in Anger*) built an entire library called `pobox` specifically for this problem, noting that “high throughput Erlang applications often get bitten by the fact that Erlang mailboxes are unbounded.” ([View Highlight](https://read.readwise.io/read/01kkp2sxbdcxz9dcnhdddnvw5v)) ^996440215
- Erlang has answers for each of these problems, and they’re good answers ([View Highlight](https://read.readwise.io/read/01kkqcx8vjr5zexh0vesjn0wfs)) ^996682775

- ETS (Erlang Term Storage) exists because of this bottleneck. ETS tables are mutable, concurrent, in-memory data structures sitting outside the process model. Any process can read from or write to a public ETS table without sending a message to anyone. ([View Highlight](https://read.readwise.io/read/01kkqd4epmkeq6ygy2j1mrfc24)) ^996682899
- OTP 21 added `persistent_term`, a global immutable store optimized for data that is read constantly and written rarely (e.g. configuration, routing tables, compiled regular expressions), because even ETS had too much overhead for those access patterns. ([View Highlight](https://read.readwise.io/read/01kkqd4pw8gg1j12233fmnf6t3)) ^996682903
- OTP 22 added the `atomics` and `counters` modules: direct shared-memory operations with no copying, no message passing, and no process involvement at all. ([View Highlight](https://read.readwise.io/read/01kkqd5cxvmvv0dth58k4ba65d)) ^996682912