# Microservice architecture articles

Source: https://imqueue.org/blog/topics/architecture/

Architecture articles on service-oriented Node.js back-ends: splitting a monolith, service boundaries, discovery, load balancing and inter-service calls.

10 articles tagged `architecture`, newest first.

- [@imqueue vs NATS: a framework and a transport are not the same choice](https://imqueue.org/blog/imqueue-vs-nats/) — 2026-08-03, Andrii Glushko: NATS is a messaging system; @imqueue is an RPC framework that happens to use one. Comparing them means deciding how much of the contract you want to write yourself — and whether your fleet is Node-only. — [markdown](https://imqueue.org/blog/imqueue-vs-nats/index.md)
- [How Node.js services talk to each other in 2026: the honest options](https://imqueue.org/blog/nodejs-service-communication-options-2026/) — 2026-08-03, Mykhailo Stadnyk: 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. — [markdown](https://imqueue.org/blog/nodejs-service-communication-options-2026/index.md)
- [Auto-scaling Redis broker: with and without broadcast](https://imqueue.org/blog/horizontally-scalable-redis-broker/) — 2026-07-24, Serhiy Morenko: One Redis behind your message bus is a ceiling and a single point of failure. The promoter and unicaster modules turn a fleet of plain Redis instances into a horizontally auto-scaling broker — here are the recipes for networks that deliver broadcast and for clouds like GCP that don't. — [markdown](https://imqueue.org/blog/horizontally-scalable-redis-broker/index.md)
- [RPC between Node.js microservices over a message queue](https://imqueue.org/blog/rpc-over-message-queue-nodejs/) — 2026-07-22, Mykhailo Stadnyk: 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. — [markdown](https://imqueue.org/blog/rpc-over-message-queue-nodejs/index.md)
- [Load balancing microservices without a load balancer](https://imqueue.org/blog/load-balancing-microservices-without-a-load-balancer/) — 2026-07-14, Mykhailo Stadnyk: 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. — [markdown](https://imqueue.org/blog/load-balancing-microservices-without-a-load-balancer/index.md)
- [Do your Node.js back-ends really need service discovery?](https://imqueue.org/blog/do-nodejs-backends-need-service-discovery/) — 2026-07-12, Mykhailo Stadnyk: 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. — [markdown](https://imqueue.org/blog/do-nodejs-backends-need-service-discovery/index.md)
- [Internal APIs don't need to be REST](https://imqueue.org/blog/internal-apis-dont-need-rest/) — 2026-06-27, Andrii Glushko: REST is a fine choice for public, resource-oriented APIs. For internal service-to-service calls it's often ceremony over a plain function call. Here's when to drop it and what to reach for instead. — [markdown](https://imqueue.org/blog/internal-apis-dont-need-rest/index.md)
- [From monolith to services: a low-risk first extraction](https://imqueue.org/blog/monolith-to-services-first-extraction/) — 2026-06-24, Andrii Glushko: You don't migrate a monolith by rewriting it. You extract one capability, keep everything else in place, and repeat. Here's a concrete, low-risk first step for a Node.js team. — [markdown](https://imqueue.org/blog/monolith-to-services-first-extraction/index.md)
- [@imqueue vs Moleculer: two takes on Node.js microservices](https://imqueue.org/blog/imqueue-vs-moleculer/) — 2026-06-19, Andrii Glushko: Moleculer is a full-featured microservices framework with many transporters; @imqueue is a focused, TypeScript-first RPC layer over a message queue. Here's an honest comparison to help you pick. — [markdown](https://imqueue.org/blog/imqueue-vs-moleculer/index.md)
- [@imqueue vs NestJS microservices: framework vs transport](https://imqueue.org/blog/imqueue-vs-nestjs/) — 2026-06-17, Andrii Glushko: NestJS is a full application framework with a microservices module; @imqueue is a focused RPC transport. They're not really competitors — here's how they differ, where each is stronger, and how to run them together. — [markdown](https://imqueue.org/blog/imqueue-vs-nestjs/index.md)

## Other topics

- [Message queues](https://imqueue.org/blog/topics/queue/) — 13 articles
- [Comparisons](https://imqueue.org/blog/topics/comparison/) — 9 articles
- [RPC](https://imqueue.org/blog/topics/rpc/) — 9 articles
- [Developer experience](https://imqueue.org/blog/topics/dx/) — 6 articles
- [Patterns](https://imqueue.org/blog/topics/patterns/) — 6 articles
- [Transports](https://imqueue.org/blog/topics/transport/) — 5 articles
- [Type safety](https://imqueue.org/blog/topics/types/) — 5 articles
- [Message delivery](https://imqueue.org/blog/topics/delivery/) — 4 articles
- [Resilience](https://imqueue.org/blog/topics/resilience/) — 4 articles
- [Typed clients](https://imqueue.org/blog/topics/clients/) — 3 articles
- [Jobs & scheduling](https://imqueue.org/blog/topics/jobs/) — 3 articles

All articles: [https://imqueue.org/blog/](https://imqueue.org/blog/) — [markdown](https://imqueue.org/blog/index.md)

