Process-Based Concurrency: Why Beam and OTP Keep Being Right
variantsystems.io
Process-Based Concurrency: Why Beam and OTP Keep Being Right
1–10 of 58 posts
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#2I 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.
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#3Sorry 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.
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#4> 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…
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#5> 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…
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#6People 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.
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#7The 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.
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#8The 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.
Re: Process-Based Concurrency: Why Beam and OTP Keep Being Right
#9The 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.
Work on the BEAM started in the 1990s, over ten years before the first release of Node in 2009.