Episode 296
OpenAI Chose Elixir and A VM Inside a VMV
March 24th, 2026
46 mins 49 secs
Tags
About this Episode
Elixir v1.20.0-rc.2 and rc.3 arrive with a faster compiler, better type inference, and improved incremental compilation; José Valim drops a low-key bombshell with Distributed Python running on top of the Erlang distribution with full Livebook integration; Chris McCord wows the community with fly_deploy, enabling zero-downtime hot code upgrades on Fly.io using the BEAM's ability to boot a peer VM inside a running VM; Discord shares a deep dive into how they added distributed tracing to their Elixir systems without melting everything; Popcorn v0.2 brings Elixir to the browser as a proper npm package; OpenAI's Symphony project — built in Elixir — sparks conversation about vibe-coded BEAM code and whether TypeScript tools can truly replicate what the BEAM offers, and more!
Show Notes online - http://podcast.thinkingelixir.com/296
Elixir Community News
- https://paraxial.io/ – Paraxial.io is sponsoring today's show! Sign up for a free trial of Paraxial.io today and mention Thinking Elixir when you schedule a demo for a special offer.
- https://x.com/josevalim/status/2029221739285057565 – José Valim announced Elixir v1.20.0-rc.2 and rc.3 on X. The compiler finds more bugs, is ~10% faster, has a new interpreted mode (up to 5x faster), and improves incremental compilation for struct changes.
- https://github.com/elixir-lang/elixir/releases/tag/v1.20.0-rc.2 – Release page for Elixir v1.20.0-rc.2.
- https://github.com/elixir-lang/elixir/releases/tag/v1.20.0-rc.3 – Release page for Elixir v1.20.0-rc.3, including a number of fixes and IEx autocomplete optimization.
- https://x.com/chris_mccord/status/2029630330630508929 – Chris McCord shared how the BEAM supports booting a :peer node as a VM within the VM, enabling "hot bluegreen" deploys on Fly.io — spinning up a new incoming VM and cutting over seamlessly while both peers stay clustered.
- https://hex.pm/packages/fly_deploy – Hex package page for fly_deploy, Chris McCord's new library for zero-downtime hot code upgrades on Fly.io without restarts.
- https://github.com/chrismccord/fly_deploy – GitHub repo for fly_deploy, which enables hot code upgrades for Elixir apps on Fly.io by suspending processes, swapping in new code, migrating state via code_change callbacks, and resuming — without downtime.
- https://hexdocs.pm/fly_deploy/FlyDeploy.html#module-limitations-vs-otp-releases – Documentation outlining the limitations of fly_deploy's hot deploy approach, such as inability to change supervision trees or application config.
- https://discord.com/blog/tracing-discords-elixir-systems-without-melting-everything – Discord engineering blog deep dive on how they added distributed tracing to their Elixir systems. They built an internal Transport library that wraps messages in an Envelope struct carrying serialized trace context, enabling gradual zero-downtime rollout.
- https://x.com/gleamlang/status/2033581228834603090 – Gleam announced the release of v1.15.0 on X.
- https://github.com/gleam-lang/gleam/releases/tag/v1.15.0 – Release page for Gleam v1.15.0, with changes across the compiler, build tools, language server, and many bug fixes.
- https://github.com/gleam-lang/gleam/blob/v1.15.0/CHANGELOG.md – Full changelog for Gleam v1.15.0.
- https://hexdocs.pm/phoenix_test/PhoenixTest.html – HexDocs page for PhoenixTest, which released v0.10.0 with all additions and fixes contributed by the community.
- https://github.com/germsvel/phoenix_test – GitHub repo for PhoenixTest.
- https://github.com/germsvel/phoenix_test/blob/main/CHANGELOG.md – Changelog for PhoenixTest v0.10.0, including support for dynamic inputs, conditionally rendered form inputs, and a new reload_page/1 helper.
- https://x.com/josevalim/status/2031794508745028012 – José Valim announced Distributed Python on top of Erlang distribution, with full Elixir and Livebook integration.
- https://dashbit.co/blog/distributed-python-livebook – Dashbit blog post detailing the Distributed Python integration in Livebook, including reproducible Python environments with uv, full Python cell support with autocompletion and docs on hover, zero-copy Apache Arrow, and interoperability with Elixir cells.
- https://x.com/expert_lsp/status/2031873718415204439 – Expert v0.1.0-rc.6 was released with bug fixes.
- https://x.com/swmansionelixir/status/2032119765267788202 – SW Mansion announced Popcorn v0.2, which adds a proper npm package for running Elixir in the browser.
- https://blog.swmansion.com/the-three-lang-problem-shipping-elixir-runtime-js-and-webassembly-as-one-npm-package-5a7b76ad5b90 – Blog post about the process of shipping Elixir runtime, JavaScript, and WebAssembly as one npm package with Popcorn.
- https://www.npmjs.com/package/@swmansion/popcorn – npm package page for Popcorn, the library that lets you run Elixir in the browser.
- https://www.reddit.com/r/elixir/comments/1rrds3n/announcing_nex_040_the_minimalist_elixir/ – Reddit announcement for Nex 0.4.0, a minimalist Elixir web framework powered by HTMX, inspired by Next.js, targeting rapid prototyping and the AI era.
- https://github.com/gofenix/nex – GitHub repo for Nex, the minimalist Elixir web framework.
- https://github.com/gofenix/nex/tree/main/examples – Examples for the Nex framework.
- https://hono.dev/ – Hono is a TypeScript minimalist web server framework (similar to a newer Express) referenced as a comparison point to Nex.
- https://x.com/zachsdaniel1/status/2030434559582478777 – Zach Daniel recommended RootCert's YouTube video as a great 12-minute elevator pitch for the BEAM.
- https://x.com/RootCert/status/2030428783015329833 – RootCert shared a walkthrough video of what makes the BEAM special — processes, messaging, registries, ETS, distribution, and its ecosystem.
- https://www.youtube.com/watch?v=dKaZ89SkVYY – 12-minute YouTube video by RootCert covering what makes the BEAM special and why Elixir was made for the current moment.
- https://github.com/openai/symphony – OpenAI published Symphony, an AI agent orchestration repo built primarily in Elixir (96.1%). It uses Elixir for supervising long-running processes, hot code reloading, and its active ecosystem.
- https://x.com/peregrine/status/2029289900428705935 – Jason Stiebs noted that OpenAI's Symphony uses a hand-rolled gen_tcp HTTP server rather than established libraries like Ranch or Mint, suggesting the project may be vibe-coded.
- https://x.com/DNAutics/status/2030361591611302024 – Discussion thread about whether Elixir and Erlang are still needed amid the rise of AI-assisted development and competing tools.
- https://rivet.dev/cloud/ – Rivet Cloud, a platform attempting to bring Actor-model-like benefits to TypeScript without using the BEAM.
- https://x.com/NathanFlurry/status/2030047986575921351 – Nathan Flurry of Rivet announced they are bringing "the benefits of Elixir to TypeScript" — though critics note it lacks true processes, links, monitors, and supervision trees.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Find us online
- Message the show - Bluesky
- Message the show - X
- Message the show on Fediverse - @ThinkingElixir@genserver.social
- Email the show - show@thinkingelixir.com
- Mark Ericksen on X - @brainlid
- Mark Ericksen on Bluesky - @brainlid.bsky.social
- Mark Ericksen on Fediverse - @brainlid@genserver.social
- David Bernheisel on Bluesky - @david.bernheisel.com
- David Bernheisel on Fediverse - @dbern@genserver.social