February 19, 2026
Queue the Chaos
Bridging Elixir and Python with Oban
Crowd split: clever shortcut or proof you picked the wrong tool
TLDR: Oban shows Elixir and Python can share a database to hand off jobs and print badges via a Python PDF tool. Comments split: fans love the shortcut, critics call it bad architecture, and an AI crowd says mainstream languages win—so many urge just Python.
Elixir meets Python on neutral ground: your database. Oban makes the handoff simple—one app drops a job into a table, the other picks it up and prints a badge PDF with Python’s WeasyPrint. The demo, cheekily called “Badge Forge,” is light on web fluff and heavy on just make it work vibes. Sounds neat… until the comments ignited. One fan waved receipts: pgflow interop works, but “stateless Deno workers are unreliable,” so Oban + Elixir saved the day. Then the skeptics charged in: “Wrong Tool For the Job” energy, warning this bridge screams bad planning, not smart engineering. A pragmatist chimed in: if Python’s doing the heavy lifting, just write it in Python. Meanwhile, the article’s embrace of the “cra-zay” shared database triggered heated debate—team “why not” vs. team “nope.”
Others went full alternative: skip the shared DB, use simple IPC (programs talking via standard input/output). One commenter runs Elixir-first and spawns Python with ex_cmd, bragging it’s clean and keeps dependencies tight. And then came the AI brigade: LLMs prefer mainstream languages, so why bother with Elixir or TypeScript? Cue jokes about “saving tokens” by skipping types and printing badges—and hot takes—even faster than PDFs. The vibe: clever hack vs. architectural red flag, with spicy AI doomers in the back row heckling.
Key Points
- •Oban enables Elixir and Python apps to share durable jobs via a common PostgreSQL oban_jobs table with JSON arguments.
- •The demo app “Badge Forge” shows Elixir enqueuing jobs to a badges queue for a Python worker to process.
- •Python uses WeasyPrint to convert HTML/CSS into PDFs for conference badge generation.
- •Elixir and Python maintain independent cluster leadership and coordinate via the jobs table and Postgres PubSub.
- •The approach reduces integration complexity by using the database as the task broker instead of separate HTTP or message queues.