frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

What years of production-grade concurrency teaches us about building AI agents

https://georgeguimaraes.com/your-agent-orchestrator-is-just-a-bad-clone-of-elixir/
89•ellieh•13h ago

Comments

mccoyb•9h ago
Broadly agree with the author's points, except for this one:

> TypeScript/Node.js: Better concurrency story thanks to the event loop, but still fundamentally single-threaded. Worker threads exist but they're heavyweight OS threads, not 2KB processes. There's no preemptive scheduling: one CPU-bound operation blocks everything.

This cannot be a real protest: 100% of the time spent in agent frameworks is spent ... waiting for the agent to respond, or waiting for a tool call to execute. Almost no time is spent in the logic of the framework itself.

Even if you use heavyweight OS threads, I just don't believe this matters.

Now, the other points about hot code swapping ... so true, painfully obvious to those of us who have used Elixir or Erlang.

For instance, OpenClaw: how much easier would "in-place updating" be if the language runtime was just designed with the ability in mind in the first place.

znnajdla•51m ago
> Even if you use heavyweight OS threads, I just don't believe this matters.

It matters a lot. How many OS threads can you run on 1 machine? With Elixir you can easily run thousands without breaking a sweat. But even if you need only a few agents on one machine, OS thread management is a headache if you have any shared state whatsoever (locks, mutexes, etc.). On Unix you can't even reliably kill dependent processes[1]. All those problems just disappear with Elixir.

[1] https://matklad.github.io/2023/10/11/unix-structured-concurr...

bitwize•7h ago
Ackshually...

Erlang didn't introduce the actor model, any more than Java introduced garbage collection. That model was developed by Hewitt et al. in the 70s, and the Scheme language was developed to investigate it (core insights: actors and lambdas boil down to essentially the same thing, you really don't need much language to support some really abstract concepts).

Erlang was a fantastic implementation of the actor model for an industrial application, and probably proved out the model's utility for large-scale "real" work more than anything else. That and it being fairly semantically close to Scheme are why I like it.

josevalim•6h ago
The team that built Erlang (Joe, Robert, Mike, and Bjorn) didn't know the actor model was actually a thing. They wanted to build reliable distributed systems and came up with the isolated processes model you find in Erlang today. Eventually (probably when Erlang was open sourced?), folks connected the dots that the actor model was the most accurate description of what was going on!
bitwize•6h ago
Spontaneous evolution of the same idea. It actor-models when it's actor-model time!
simianwords•5h ago
I don’t see the point of agent frameworks. Other than durability and checkpoints how does it help me?

Claude code already works as an agent that calls tools when necessary so it’s not clear how an abstraction helps here.

I have been really confused by langchain and related tech because they seem so bloated without offering me any advantages?

I genuinely would like to know what I’m missing.

spoiler•1h ago
There's lots of things you could do. Imagine you're making a group chat bot (way more difficult than a 1-1 chat) where people can play social games by giving the LLM game rules. You can have an agent that only manages game state using natural language (controlled by the main LLM). You could have an agent dedicated to remembering important conversation, while not paying attention to chit-chatting
koakuma-chan•34m ago
100% agreed
fud101•3h ago
This is all well and good but Elixir with Phoenix and Liveview is super bloated and you have to have a real reason to buy into such a monster that you couldn't do with a simpler stack.
ipnon•57m ago
Interesting take. I’m an Elixir fanboy because I find LiveView to be very slim. You’re just sending state diffs over WebSocket and updating the DOM with MorphDOM. The simplicity is incomparable to state of the art with JavaScript frameworks in my humble opinion.
monooso•4m ago
I'm not sure I agree with the "bloated" description, but I will say that I really like Elixir, and really dislike LiveView. Which is a shame, because the latter is pretty inescapable in Elixir world these days.
randomtoast•1h ago
I’ve built fairly large OTP systems in the past, and I think the core claim is directionally right: long lived, stateful, failure prone "conversations" map very naturally to Erlang processes plus supervision trees. An agent session is basically a call session with worse latency and more nondeterminism.

That said, a lot of current agent workloads are I/O bound around external APIs. If 95% of the time is waiting on OpenAI or Anthropic, the scheduling model matters less than people think. The BEAM’s preemption and per process GC shine when you have real contention or CPU heavy work in the same runtime. Many teams quietly push embeddings, parsing, or model hosting to separate services anyway.

Hot code swapping is genuinely interesting in this context. Updating agent logic without dropping in flight sessions is non trivial on most mainstream stacks. In practice though, many startups are comfortable with draining connections behind a load balancer and calling it a day.

So my take is: if you actually need millions of concurrent, stateful, soft real time sessions with strong fault isolation, the BEAM is a very sane default. If you are mostly gluing API calls together for a few thousand users, the runtime differences are less decisive than the surrounding tooling and hiring pool.

znnajdla•1h ago
Is someone at Anthropic reading my AI chats? I literally came to this conclusion a few weeks ago after studying the right framework for building long running browser agents. Have zero experience with Elixir but as soon as I looked at their language constructs it just "clicked" immediately that this is exactly suited to AI agent frameworks. Another problem you solve immediately: distributed deployment without kubernetes hell.
manojlds•57m ago
Surely they mean Erlang not Elixir
christophilus•43m ago
Sounds to me like they mean “BEAM” rather than a specific language. But BEAM means Elixir for most newcomers.
cyberpunk•11m ago
Which is a real shame as if you actually spend some time with both you’ll probably eventually realise erlang is the nicer language.

Elixir just feels… Like it’s a load of pre-compile macros. There’s not even a debugger.

igravious•5m ago
addressed at the very top of the article

   A note on terminology: Throughout this post I refer to "the BEAM." BEAM is
   the virtual machine that runs both Erlang and Elixir code, similar to how the
   JVM runs both Java and Kotlin. Erlang (1986) created the VM and the
   concurrency model. Elixir (2012) is a modern language built on top of it with
   better ergonomics. When I say "BEAM," I mean the runtime and its properties.
   When I say "Elixir," I mean the language we write.
koakuma-chan•35m ago
You Should Just Use Rust

Sizing chaos

https://pudding.cool/2026/02/womens-sizing/
642•zdw•14h ago•347 comments

The Mongol Khans of Medieval France

https://www.historytoday.com/archive/feature/mongol-khans-medieval-france
7•Thevet•2d ago•0 comments

Don't Trust the Salt: AI Summarization, Multilingual Safety, and LLM Guardrails

https://royapakzad.substack.com/p/multilingual-llm-evaluation-to-guardrails
11•benbreen•2d ago•0 comments

27-year-old Apple iBooks can connect to Wi-Fi and download official updates

https://old.reddit.com/r/MacOS/comments/1r8900z/macos_which_officially_supports_27_year_old/
371•surprisetalk•15h ago•203 comments

15 years of FP64 segmentation, and why the Blackwell Ultra breaks the pattern

https://nicolasdickenmann.com/blog/the-great-fp64-divide.html
133•fp64enjoyer•10h ago•48 comments

Step 3.5 Flash – Open-source foundation model, supports deep reasoning at speed

https://static.stepfun.com/blog/step-3.5-flash/
114•kristianp•9h ago•39 comments

Cosmologically Unique IDs

https://jasonfantl.com/posts/Universal-Unique-IDs/
407•jfantl•17h ago•121 comments

Old School Visual Effects: The Cloud Tank (2010)

http://singlemindedmovieblog.blogspot.com/2010/04/old-school-effects-cloud-tank.html
38•exvi•5h ago•4 comments

Voith Schneider Propeller

https://en.wikipedia.org/wiki/Voith_Schneider_Propeller
16•Luc•3d ago•3 comments

Anthropic officially bans using subscription auth for third party use

https://code.claude.com/docs/en/legal-and-compliance
423•theahura•9h ago•503 comments

Tailscale Peer Relays is now generally available

https://tailscale.com/blog/peer-relays-ga
420•sz4kerto•19h ago•207 comments

Visualizing the ARM64 Instruction Set (2024)

https://zyedidia.github.io/blog/posts/6-arm64/
48•userbinator•3d ago•8 comments

How to choose between Hindley-Milner and bidirectional typing

https://thunderseethe.dev/posts/how-to-choose-between-hm-and-bidir/
108•thunderseethe•3d ago•26 comments

Zero-day CSS: CVE-2026-2441 exists in the wild

https://chromereleases.googleblog.com/2026/02/stable-channel-update-for-desktop_13.html
345•idoxer•19h ago•188 comments

Lilush – LuaJIT static runtime and shell

https://lilush.link/
5•ksymph•2d ago•0 comments

DNS-Persist-01: A New Model for DNS-Based Challenge Validation

https://letsencrypt.org/2026/02/18/dns-persist-01.html
280•todsacerdoti•18h ago•126 comments

A word processor from 1990s for Atari ST/TOS is still supported by enthusiasts

https://tempus-word.de/en/index
59•muzzy19•2d ago•23 comments

Fff.nvim – Typo-resistant code search

https://github.com/dmtrKovalenko/fff.nvim
51•neogoose•2d ago•6 comments

Show HN: A Lisp where each function call runs a Docker container

https://github.com/a11ce/docker-lisp
52•a11ce•7h ago•17 comments

Antarctica sits above Earth's strongest 'gravity hole' – how it got that way

https://phys.org/news/2026-02-antarctica-earth-strongest-gravity-hole.html
13•bikenaga•2d ago•6 comments

All Look Same?

https://alllooksame.com/
79•mirawelner•13h ago•57 comments

What years of production-grade concurrency teaches us about building AI agents

https://georgeguimaraes.com/your-agent-orchestrator-is-just-a-bad-clone-of-elixir/
89•ellieh•13h ago•18 comments

Minecraft Java is switching from OpenGL to Vulkan

https://www.gamingonlinux.com/2026/02/minecraft-java-is-switching-from-opengl-to-vulkan-for-the-v...
227•tuananh•10h ago•102 comments

The Perils of ISBN

https://rygoldstein.com/posts/perils-of-isbn
135•evakhoury•18h ago•68 comments

A Pokémon of a Different Color

https://matthew.verive.me/blog/color/
118•Risse•4d ago•17 comments

What Every Experimenter Must Know About Randomization

https://spawn-queue.acm.org/doi/pdf/10.1145/3778029
88•underscoreF•17h ago•54 comments

Stoolap/Node: A Native Node.js Driver That's Surprisingly Fast

https://stoolap.io/blog/2026/02/19/introducing-stoolap-node/
23•murat3ok•5h ago•17 comments

Making a font with ligatures to display thirteenth-century monk numerals

https://digitalseams.com/blog/making-a-font-with-9999-ligatures-to-display-thirteenth-century-mon...
89•a7b3fa•3d ago•12 comments

R3forth: A concatenative language derived from ColorForth

https://github.com/phreda4/r3/blob/main/doc/r3forth_tutorial.md
89•tosh•16h ago•17 comments

Metriport (YC S22) is hiring a security engineer to harden healthcare infra

https://www.ycombinator.com/companies/metriport/jobs/XC2AF8s-senior-security-engineer
1•dgoncharov•15h ago