Project ideas from Hacker News discussions.

Oban, the job processing framework from Elixir, has come to Python

📝 Discussion Summary (Click to expand)

1. Feature‑by‑feature comparison of job queues

  • Oban vs. Temporal vs. Celery
  • “Temporal – if you have strict workflow requirements, want guarantees that things complete, and are willing to take on extra complexity to achieve that.” – BowBun
  • “Oban – DB‑backed worker queue, which processes tasks off‑thread. It does not give you the guarantees that Temporal can because it has not abstracted every push/pull into a first‑class citizen.” – BowBun
  • “Celery + RabbitMQ is hard to beat in the Python ecosystem for scaling.” – TkTech

  • Language‑specific strengths

  • “Oban allows you to insert and process jobs using only your database.” – simonw
  • “Python has a lot of libraries that are not async‑friendly… Celery has absolutely no asyncio support at all.” – TkTech

2. Open‑source vs. paid feature gating

  • “I think we should not lock technical features behind a paywall.” – owaislone
  • “Oban Pro locks core features like multi‑process execution, workflows, global and rate limiting, unique jobs, bulk operations, etc.” – TkTech
  • “It feels bad to have ‘same thing but better’ gated behind payment.” – qianli_cs

3. PostgreSQL as a durable job queue (transactional outbox pattern)

  • “Oban allows you to insert and process jobs using only your database. You can insert the job to send a confirmation email in the same database transaction where you create the user.” – simonw
  • “This is called the ‘transactional outbox pattern’!” – nhumrich
  • “Good Job is a strong attempt… it uses advisory locks.” – brightball
  • “Transactions around fetching/updating aren’t trivial, but they are part of the application logic and make testing easier.” – sorentwo

These three themes—feature trade‑offs across ecosystems, the debate over freemium models, and the appeal of a Postgres‑centric, transactional approach—dominate the discussion.


🚀 Project Ideas

Django Tasks Backend

Summary

  • Provides a PostgreSQL‑backed job queue for Django, integrated with Django's tasks API, eliminating the need for separate brokers like Celery.
  • Core value: simple, transactional enqueuing, unique jobs, rate limiting, workflows, bulk ops, and a web UI—all in one open‑source package.

Details

Key Value
Target Audience Django developers needing background jobs
Core Feature PostgreSQL‑backed job queue with transactional enqueuing, unique jobs, rate limiting, workflows, bulk ops, web UI
Tech Stack Python, Django, PostgreSQL, async/await, SQLAlchemy, Celery‑like API
Difficulty Medium
Monetization Revenue‑ready: subscription for enterprise support and optional premium features

Notes

  • HN commenters say “Django 6 shipped an API called Django Tasks for background jobs but no backend” and “Celery requires separate containers and is heavy.” This solves those pain points.
  • Discussion potential: compare to Celery, Sidekiq, Oban, and evaluate ease of use and performance.

JobHub

Summary

  • A central job server that handles job lifecycle, with lightweight language‑specific clients for Python, Ruby, Elixir, Go, etc., and a web UI for monitoring.
  • Core value: language‑agnostic, single source of truth for jobs, reducing duplication and easing cross‑language teams.

Details

Key Value
Target Audience Multi‑language teams needing a unified job queue
Core Feature Central server with language‑specific clients, supporting unique jobs, rate limiting, workflows, bulk ops, web UI
Tech Stack Go (server), gRPC, PostgreSQL, language clients (Python, Ruby, Elixir, Go)
Difficulty High
Monetization Revenue‑ready: subscription for enterprise support and optional premium features

Notes

  • Commenters mention “Faktory is language‑agnostic but lacks idiomatic examples.” JobHub addresses that by providing well‑documented clients and a central UI.
  • Potential for discussion: trade‑offs between Faktory, Oban, Celery, and a language‑agnostic approach.

Outboxer

Summary

  • A Python library that implements the transactional outbox pattern, allowing jobs to be enqueued within a database transaction with minimal boilerplate.
  • Core value: eliminates dual‑write problems, ensures reliability, and supports multiple backends (PostgreSQL, Redis, etc.).

Details

Key Value
Target Audience Python developers needing reliable async messaging
Core Feature Transactional outbox library with support for PostgreSQL, Redis, and optional Celery integration
Tech Stack Python, SQLAlchemy, PostgreSQL, Redis, async/await
Difficulty Medium
Monetization Hobby

Notes

  • HN users highlight “Transactional outbox pattern is essential” and “dual‑write problem.” Outboxer directly addresses these frustrations.
  • Discussion potential: integration with Django, Flask, FastAPI, and comparison to existing solutions like Debezium or pg_timetable.

Read Later