Type safety
Articles on end-to-end type safety between TypeScript microservices: generated clients, sharing types without a shared package, and versioning safely.
5 articles
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 →Type-safe service-to-service communication in TypeScript
End-to-end types across service boundaries are easy inside one process and hard the moment you cross a network. Here's how to keep them without hand-writing clients or maintaining a schema language.
read →Stop hand-writing and maintaining your microservice clients
Every service you call needs a client, and hand-maintained clients drift out of sync with the services they talk to. Here's why that happens, how to make the client fall out of the service, and what the generated approach costs.
read →Versioning microservices without breaking every caller
A change to one service's method quietly breaks the services that call it — and you find out in production. Here's how to make breaking changes loud at build time, which changes are actually safe, and how to handle the window where both versions are live.
read →tRPC vs @imqueue: client–server types vs service–service RPC
tRPC gives you end-to-end types between a frontend and its backend. @imqueue gives you typed RPC between backend services over a queue. They solve adjacent — not competing — problems.
read →