Developer Tools

Bridging Elixir and Python with Oban

Share a Postgres database to queue jobs between languages, enabling Elixir to use mature Python tools like WeasyPrint.

Deep Dive

The Oban team built a Python version of their Elixir job processor, creating a transparent bridge between the two languages. Both libraries read/write to the same `oban_jobs` table in Postgres using JSON for language-agnostic job arguments. An Elixir app can now enqueue a job (like PDF generation via Python's WeasyPrint) by writing a row, and a Python worker processes it based on queue name, enabling cross-ecosystem functionality without complex HTTP calls or separate queues.

Why It Matters

Teams can leverage mature Python libraries (ML, PDF, audio/video) from Elixir apps, facilitating gradual migrations and inter-team collaboration without rewriting entire systems.