# Type safety across services

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

Articles on end-to-end type safety between TypeScript microservices: generated clients, sharing types without a shared package, and versioning safely.

5 articles tagged `types`, newest first.

- [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)
- [Type-safe service-to-service communication in TypeScript](https://imqueue.org/blog/type-safe-service-communication-typescript/) — 2026-07-19, Serhiy Morenko: 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. — [markdown](https://imqueue.org/blog/type-safe-service-communication-typescript/index.md)
- [Stop hand-writing and maintaining your microservice clients](https://imqueue.org/blog/stop-hand-writing-microservice-clients/) — 2026-07-17, Serhiy Morenko: 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. — [markdown](https://imqueue.org/blog/stop-hand-writing-microservice-clients/index.md)
- [Versioning microservices without breaking every caller](https://imqueue.org/blog/versioning-microservices-without-breaking-callers/) — 2026-07-02, Serhiy Morenko: 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. — [markdown](https://imqueue.org/blog/versioning-microservices-without-breaking-callers/index.md)
- [tRPC vs @imqueue: client–server types vs service–service RPC](https://imqueue.org/blog/imqueue-vs-trpc/) — 2026-06-14, Andrii Glushko: 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. — [markdown](https://imqueue.org/blog/imqueue-vs-trpc/index.md)

## Other topics

- [Message queues](https://imqueue.org/blog/topics/queue/) — 13 articles
- [Architecture](https://imqueue.org/blog/topics/architecture/) — 10 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
- [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)

