Do you need Redis? PostgreSQL does queuing, locking, and pub/sub

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • django-cachalot

    No effort, no worry, maximum performance.

    Django has caching built in with support for Redis, and it also has an in-memory caching option which they label as “not for production” (because if you have multiple instances of Django serving requests, their in-memory caches will diverge which is...bad).

    But for lots of cases, especially internal business tools, we can scale up a single instance for a long time, and this in-memory caching makes things super fast.

    There’s a library, django-cachalot [1], that handles cache invalidation automatically any time a write happens to a table. That’s a rather blunt way to handle cache invalidation, but it’s wonderful because it will give you a boost for free with virtually no effort on your part, and if your internal business app has infrequent updates it basically runs entirely in RAM, and falls back to regular database queries if the data isn’t in the cache.

    [1] https://github.com/noripyt/django-cachalot

  • CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  • chancy

    A postgres-backed task queue for Python.

    This is a fairly old article, but this has become a very common pattern. For 90% of projects that just need a task queue for sending email or generating reports, you're not going to be doing millions of messages a second and anything that simplifies your stack is worth looking at. I've used these patterns so often to work around issues encountered with Celery that I've split them into their own framework, https://github.com/TkTech/chancy (feedback appreciated ;)

    There are lots of these, several of which are commercial ventures so there's definite interest behind it:

        https://worker.graphile.org/ (Node.js)

  • neoq

    Queue-agnostic background job library for Go, with a pleasant API and powerful features.

    https://github.com/acaloiaro/neoq (Go)

  • worker

    High performance Node.js/PostgreSQL job queue (also suitable for getting jobs generated by PostgreSQL triggers/functions out into a different work queue)

    This is a fairly old article, but this has become a very common pattern. For 90% of projects that just need a task queue for sending email or generating reports, you're not going to be doing millions of messages a second and anything that simplifies your stack is worth looking at. I've used these patterns so often to work around issues encountered with Celery that I've split them into their own framework, https://github.com/TkTech/chancy (feedback appreciated ;)

    There are lots of these, several of which are commercial ventures so there's definite interest behind it:

        https://worker.graphile.org/ (Node.js)

  • oban

    Discontinued 💎 Robust job processing in Elixir, backed by modern PostgreSQL and SQLite3 [Moved to: https://github.com/oban-bg/oban] (by sorentwo)

    https://github.com/sorentwo/oban (Elixir)

  • river

    Fast and reliable background jobs in Go (by riverqueue)

    https://riverqueue.com/ (Go)

  • procrastinate

    PostgreSQL-based Task Queue for Python

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • pgqueuer

    PgQueuer is a Python library leveraging PostgreSQL for efficient job queuing.

    PGQueuer provides job queuing, locking, and real-time notifications using PostgreSQL's FOR UPDATE SKIP LOCKED and LISTEN/NOTIFY. It's a minimalist alternative for those already using PostgreSQL, avoiding the need for Redis.

    - https://github.com/janbjorge/PGQueuer

    disclaimer: Im the auther.

  • valkey

    A flexible distributed key-value datastore that is optimized for caching and other realtime workloads.

    Reminder that redis has been forked into valkey - https://valkey.io/

  • pg-boss

    Queueing jobs in Postgres from Node.js like a boss

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Pg-boss: Queueing jobs in Postgres from Node.js

    1 project | news.ycombinator.com | 27 Aug 2024
  • How/do you handle queue type workflows?

    1 project | /r/Supabase | 5 Feb 2023
  • Which tool/library well adopted to use Postgres as a message broker?

    1 project | /r/PostgreSQL | 1 Feb 2023
  • You don't need distributed systems.

    1 project | dev.to | 18 Aug 2022
  • Coding exercise: database migration tool in nodejs

    3 projects | dev.to | 25 Sep 2024

Did you konow that Python is
the 2nd most popular programming language
based on number of metions?