Our great sponsors
-
pgboss-with-prisma
It reproduces a simplified version of my ETL process using pg-boss. It aims to replace Bull and Redis, evaluating compatibility and performance. Contributions are welcome to explore pg-boss as an alternative solution for ETL
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
rabbitmqtobucketqueue
A RabbitMQ Consumer which limits the rate of consumption by consuming small batches of messages periodically and releasing them. Designed to enforce rate limits when working with external APIs.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I'm working on a large ETL project that involves handling queues for file integration. Currently, we are using Redis with Bull (https://www.npmjs.com/package/bull) for this purpose. However, to streamline our architecture and address security concerns, we are considering migrating the queue to PostgreSQL.
On the other hand, I conducted a P.O.C. to compare the performance of pg-boss and PostgreSQL against that of Bull and Redis. You can find the P.O.C. at this GitHub repository: https://github.com/lgauthier1/pgboss-with-prisma
You can view an example of a Publisher here: https://github.com/jakguru/rabbitmqtobucketqueue/blob/main/src/ToRabbitMQBucketQueue.ts
Used pg-boss and I can recommend if you are queuing under 1-2 mil items and doesn't require sub ms latency. Additionally I wrote my own library similar to pg-boss: https://github.com/ilijaNL/pg-tbus
For a chat program, you can use a websocket-like library like socket.io, and use RabbiqMQ as a coordinator in the backend to allow for clustering. In fact, there's already drivers for that. That being said, RabbitMQ is not a chat program solution.
Related posts
- Prioritizing Concurrent Requests: Queuing system to handle distributed processes and messages with NodeJS and Bull
- Object Narrowing in Typescript with Graphile Worker
- Job Schedulers for Node: Bull or Agenda?
- Instrumentation for Event Driven
- Redis master/slave setup on Kubernetes throwing error: BRPOPLPUSH { ReplyError: MOVED 2651