Mykhailo Stadnyk

Mykhailo Stadnyk

Creator & maintainer of @imqueue

Web developer, software engineer and architect — mainly TypeScript, Go, JavaScript, Node.js, Python and C. Mykhailo is the creator and maintainer of the @imqueue framework.

Sep 1, 2026

Meeting compliance: how to talk to your Redis broker over TLS

The questionnaire asks whether data is encrypted in transit, and you know the answer for the edge. Then you remember the broker — the one connection every service holds open all day, carrying every argument and every return value, and speaking a protocol that puts them on the wire as text. Here is what encrypting it takes, what it costs, and the two places it is easy to get wrong.

read →
Aug 28, 2026

Checking an IP against 10,000 networks without comparing it to 10,000 networks

Every request asks the same question — is this one of ours? — and the loop you wrote to answer it gets slower every time someone adds a partner range. Here is how to answer it in logarithmic time instead, what an address really is once you stop treating it as a string, and the quiet precondition that a fast implementation must uphold or it will lie to you.

read →
Aug 22, 2026

Autoscale on queue depth, not CPU

CPU tells you a process is busy, not whether anyone is waiting. An @imqueue service's backlog is a Redis list, so KEDA can scale on it with no exporter, no Prometheus and no code change — and the metrics server covers the case where you need more.

read →
Aug 18, 2026

Cache invalidation across services: a TTL, a tag, or the database

Caching a service method is one decorator. Deciding when the entry dies is the whole job. Here are the three mechanisms measured — a guessed TTL, a tag invalidated by an event, and PostgreSQL dropping the entry 6ms after the row changes — plus the four ways a cache goes on serving data it already knows is stale, and a fifth that got fixed while this was being written.

read →
Aug 3, 2026

How Node.js services talk to each other in 2026: the honest options

REST, gRPC, tRPC, NATS, a framework like NestJS or Moleculer, or RPC over a message queue. Six real approaches, what each one costs, and the two questions that actually decide it — including when @imqueue is the wrong answer.

read →
Jul 25, 2026

Delayed and scheduled work without adding a job system

"Send that email in 24 hours" usually turns into a second deployment, a second data model, and a job record shadowing a service method you already wrote. Often the message queue you already run can just do it. Here's how deferral works as a parameter, and what it costs.

read →
Jul 22, 2026

BullMQ alternatives for Node.js: an honest 2026 guide

BullMQ is the default Redis job queue for Node.js — but it isn't the only choice. Here's an even-handed map of the alternatives (Bee-Queue, pg-boss, Agenda, @imqueue/job and more), what each is actually good at, and how to pick.

read →
Jul 22, 2026

RPC between Node.js microservices over a message queue

Why route internal service-to-service calls through a message queue instead of HTTP or gRPC — and how @imqueue makes those calls fully typed with zero client boilerplate.

read →
Jul 14, 2026

Load balancing microservices without a load balancer

For internal service-to-service traffic, the load balancer you run and operate is often solving a problem a message queue solves for free. Here's the competing-consumers pattern, why pull beats push, and what you give up.

read →
Jul 12, 2026

Do your Node.js back-ends really need service discovery?

Consul, etcd, DNS-SD — service discovery is a lot of machinery to stand up. Sometimes you genuinely need it; often you don't. Here's how to tell, and how a queue makes the question disappear.

read →
Jul 9, 2026

Back-pressure for Node.js services

When a downstream service slows down, HTTP tends to turn that into a cascading failure. A queue absorbs the spike instead. Here's the difference, and the trade-offs to watch.

read →
Jul 7, 2026

Guaranteed message delivery: cost and when to use it

"Will I lose messages if a worker dies?" is the right question — and the answer is a trade-off, not a yes/no. Here's how guaranteed delivery works, what it costs, and how to choose per workload.

read →
Jun 22, 2026

Redis as a message bus: patterns beyond pub/sub

Most people know Redis pub/sub and stop there. Redis has richer primitives — lists, blocking pops, and streams — that make it a capable message bus. Here's a tour, and where each fits.

read →
Jun 9, 2026

gRPC vs message-queue RPC for internal Node.js services

gRPC is the default answer for typed RPC — and a great one, especially across languages. For an all-Node.js back-end, routing RPC through a queue trades some of gRPC's strengths for a lot less infrastructure.

read →
Jun 7, 2026

Benchmarking @imqueue: throughput and delivery modes

Real measured throughput for @imqueue's message queue — ~200k msg/sec unreliable, ~120k guaranteed on a 24-core box — what the delivery modes cost, and a reproducible harness to measure the figures that matter: yours.

read →