Blog

News, releases and articles about @imqueue. Page 1 of 9.

Sep 22, 2026 · Andrii Glushko

Soft delete and tenant scoping in Prisma, written once instead of in every query

Every team that soft-deletes rows ends up with a deletedAt filter in a hundred places, and the one that gets forgotten is usually inside an include. Tenant filters fail the same way, only worse. Here is how to move both below your queries with @imqueue/pg-prisma on Prisma Next, so a delete becomes a stamp and every read, relations included, sees only live rows the caller may see. Every behaviour is measured on a real Postgres.

read →
Sep 18, 2026 · Mykhailo Stadnyk

Least privilege for your Redis broker: the ACL a Node.js service fleet actually needs

TLS decides who can listen to your broker. It says nothing about what a connected process may do after it is in — and on a Redis left at its defaults the answer is everything, including FLUSHALL. Here is the exact rule set an @imqueue fleet needs, the permissions that look optional and quietly are not, and how to rotate the password without a restart storm. Every behaviour is measured.

read →
Sep 15, 2026 · Yauheniya Habrykava

One event, every instance: pub/sub over a Redis broker fleet with @imqueue

You need to tell every instance of a service something at once — a price list changed, a tenant was suspended, an order was created and three concerns want to know. Pub/sub is the tool, and a fleet of brokers changes how it behaves. Here is what a clustered subscription does across several Redis brokers, how to publish and subscribe so brokers joining and leaving never cost you a handler, how to write a handler that stays correct when it gets one copy per broker, and how to see that it works.

read →
Sep 11, 2026 · Andrii Glushko

Guaranteed delivery, tested with kill -9: what at-least-once actually promises when a worker dies

"Will I lose messages if a worker dies?" is the right question, and for a year this page answered it wrong. Here is what guaranteed (at-least-once) delivery really promises — measured by killing workers mid-job — what the one deadline actually governs, what a drain does and doesn't save, what it costs, and how to choose per workload.

read →
Sep 8, 2026 · Mykhailo Stadnyk

Fifty callers, one query: the cache stampede and the decorator that ends it

A cache is at its most useless in the one moment you need it: the key is cold, fifty requests miss it together, and fifty copies of the same query hit the database. Measured — and measured again with one line above the method that makes it one query, one result, fifty callers served.

read →