frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Process-Based Concurrency: Why Beam and OTP Keep Being Right

https://variantsystems.io/blog/beam-otp-process-concurrency
24•linkdd•4h ago

Comments

joshsegall•2h ago
I think the practitioner angle is what makes interesting. Too many BEAM advocacy posts are theoretical.

I would push back on the "shared state with locks vs isolated state with message passing" framing. Both approaches model concurrency as execution that needs coordination. Switching from locks to mailboxes changes the syntax of failure, not the structure. A mailbox is still a shared mutable queue between sender and receiver, and actors still deadlock through circular messages.

stingraycharles•14m ago
Stateless vs stateful concurrency management is very different, though; I can roll back / replay a mail box, while this isn’t possible with shared locks. It’s a much cleaner architecture in general if you want to scale out, but it has more overhead.
rapsey•1h ago
> Backpressure is built in. If a process receives messages faster than it can handle them, the mailbox grows. This is visible and monitorable. You can inspect any process’s mailbox length, set up alerts, and make architectural decisions about it. Contrast this with thread-based systems where overload manifests as increasing latency, deadlocks, or OOM crashes — symptoms that are harder to diagnose and attribute.

Sorry but this is wrong. This is no kind of backpressure as any experienced erlang developer will tell you: properly doing backpressure is a massive pain in erlang. By default your system is almost guaranteed to break in random places under pressure that you are surprised by.

Twisol•1h ago
Yes, this is missing the "pressure" part of "backpressure", where the recipient is able to signal to the producer that they should slow down or stop producing messages. Observability is useful, sure, but it's not the same as backpressure.
librasteve•1h ago
Occam (1982 ish) shared most of BEAMs ideas, but strongly enforced synchronous message passing on both channel output and input … so back pressure was just there in all code. The advantage was that most deadlock conditions were placed in the category of “if it can lock, then it will lock” which meant that debugging done at small scale would preemptively resolve issues before scaling up process / processor count.
baud9600•30m ago
Once you were familiar with occam you could see deadlocks in code very quickly. It was a productive way to build scaled concurrent systems. At the time we laughed at the idea of using C for the same task
librasteve•19m ago
I spreadsheeted out how many T424 die per Apple M2 (TSMC 3nm process) - that's 400,000 CPUs (about a 600x600 grid) at say 1GIPs each - so 400 PIPS per M2 die size. Thats for 32 bit integer math - Inmos also had a 16 bit datapath, but these days you would probably up the RAM per CPU (8k, 16k?) and stick with 32-bit datapath, but add 8-,16-bit FP support. Happy to help with any VC pitches!
mnsc•8m ago
I wonder how much the roots of erlang is showing now? Telephone calls had a very specific "natural" profile. High but bounded concurrency (number of persons alive), long process lifetime (1 min - hours), few state changes/messages per process (I know nothing of the actual protocol). I could imagine that the agentic scenario matches this somewhat where other scenarios, eg HFT, would be have a totally different profile making beam a bad choice. But then again, that's just the typical right-tool-for-the-job challenge.
socketcluster•1h ago
The Node.js community had figured this out long before BEAM or even Elixir existed.

People tried to introduce threads to Node.js but there was push-back for the very reasons mentioned in this article and so we never got threads.

The JavaScript languages communities watch, nod, and go back to work.

leoc•53m ago
You may be thinking of some recent round of publicity for BEAM, but BEAM is a bit older than JavaScript.
xtoilette•52m ago
BEAM predates node js
pentacent_hq•51m ago
> The Node.js community had figured this out long before BEAM or even Elixir existed.

Work on the BEAM started in the 1990s, over ten years before the first release of Node in 2009.

masklinn•35m ago
And BEAM was the reimplementation of the Erlang runtime, the actual model is part of the language semantics which was pretty stable by the late 80s, just with a Prolog runtime way too slow for production use.
worthless-trash•28m ago
Such authority, much incorrect.
worthless-trash•3m ago
I think the author is trying to be clever to parody what was written in tfa.
hlieberman•2m ago
Forget Node.js; _Javascript_ hadn't even been invented yet when Erlang and BEAM first debuted.
gethly•41m ago
Go is good enough.
baud9600•34m ago
Very interesting. Reading this made me think of occam on the transputer: concurrent lightweight processes, message passing, dedicated memory! I spent some happy years in that world. Perhaps I should look at BEAM and see what work comes along?

Motorola announces a partnership with GrapheneOS Foundation

https://motorolanews.com/motorola-three-new-b2b-solutions-at-mwc-2026/
345•km•2h ago•94 comments

Making Video Games in 2025 (without an engine)

https://www.noelberry.ca/posts/making_games_in_2025/
75•alvivar•3d ago•11 comments

Computer-generated dream world: Virtual reality for a 286 processor

https://deadlime.hu/en/2026/02/22/computer-generated-dream-world/
89•MBCook•4h ago•11 comments

If AI writes code, should the session be part of the commit?

https://github.com/mandel-macaque/memento
221•mandel_x•8h ago•225 comments

WebMCP is available for early preview

https://developer.chrome.com/blog/webmcp-epp
276•andsoitis•10h ago•155 comments

Evolving descriptive text of mental content from human brain activity

https://www.bbc.com/future/article/20260226-how-ai-can-read-your-thoughts
22•ggm•3h ago•11 comments

Show HN: Timber – Ollama for classical ML models, 336x faster than Python

https://github.com/kossisoroyce/timber
120•kossisoroyce•8h ago•17 comments

Right-sizes LLM models to your system's RAM, CPU, and GPU

https://github.com/AlexsJones/llmfit
128•bilsbie•9h ago•31 comments

Everett shuts down Flock camera network after judge rules footage public record

https://www.wltx.com/article/news/nation-world/281-53d8693e-77a4-42ad-86e4-3426a30d25ae
220•aranaur•4h ago•44 comments

How to record and retrieve anything you've ever had to look up twice

https://ellanew.com/2026/03/02/ptpl-197-record-retrieve-from-a-personal-knowledgebase
36•Curiositry•4h ago•14 comments

Process-Based Concurrency: Why Beam and OTP Keep Being Right

https://variantsystems.io/blog/beam-otp-process-concurrency
26•linkdd•4h ago•18 comments

How to talk to anyone and why you should

https://www.theguardian.com/lifeandstyle/2026/feb/24/stranger-secret-how-to-talk-to-anyone-why-yo...
7•Looky1173•1h ago•251 comments

Ghostty – Terminal Emulator

https://ghostty.org/docs
724•oli5679•20h ago•311 comments

Tove Jansson's criticized illustrations of The Hobbit (2023)

https://tovejansson.com/hobbit-tolkien/
173•abelanger•2d ago•79 comments

An interactive intro to Elliptic Curve Cryptography

https://growingswe.com/blog/elliptic-curve-cryptography
14•vismit2000•3h ago•7 comments

Why does C have the best file API

https://maurycyz.com/misc/c_files/
109•maurycyz•13h ago•81 comments

Little Free Library

https://littlefreelibrary.org/
114•TigerUniversity•10h ago•61 comments

When does MCP make sense vs CLI?

https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html
372•ejholmes•16h ago•238 comments

Decision trees – the unreasonable power of nested decision rules

https://mlu-explain.github.io/decision-tree/
477•mschnell•1d ago•74 comments

Enable CORS for Your Blog

https://www.blogsareback.com/guides/enable-cors
27•cdrnsf•2d ago•12 comments

Microgpt explained interactively

https://growingswe.com/blog/microgpt
267•growingswe•23h ago•37 comments

The Mini PET 40/80 (2022)

http://blog.tynemouthsoftware.co.uk/2022/02/the-mini-pet-4080.html
6•erickhill•2d ago•0 comments

Long Range E-Bike (2021)

https://jacquesmattheij.com/long-range-ebike/
160•birdculture•3d ago•241 comments

Have your cake and decompress it too

https://spiraldb.com/post/cascading-compression-with-btrblocks
17•emschwartz•2d ago•3 comments

Next-gen spacecraft are overwhelming communication networks

https://atempleton.bearblog.dev/how-next-gen-spacecraft-are-overwhelming-our-communication-networks/
62•korrz•2d ago•19 comments

Ape Coding [fiction]

https://rsaksida.com/blog/ape-coding/
174•rmsaksida•18h ago•116 comments

Setting up phones is a nightmare

https://joelchrono.xyz/blog/setting-up-phones-is-a-nightmare/
150•bariumbitmap•3d ago•193 comments

Flightradar24 for Ships

https://atlas.flexport.com/
227•chromy•22h ago•46 comments

Why XML tags are so fundamental to Claude

https://glthr.com/XML-fundamental-to-Claude
201•glth•18h ago•137 comments

Microgpt

http://karpathy.github.io/2026/02/12/microgpt/
1803•tambourine_man•1d ago•302 comments