Developer experience
Articles on developer experience in Node.js microservices: cutting boilerplate, generated typed clients, running a local fleet, and isolated CLI environments.
6 articles
One isolated imq CLI home per @imqueue project
Every imq invocation shares one ~/.imq — one config, one pid registry, one set of logs. Here's how to give each project its own isolated CLI environment with IMQ_CLI_HOME, plus recipes for direnv, shell wrappers, per-client tokens and disposable sandboxes.
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 and how to make the client fall out of the service for free.
read →Cutting the boilerplate out of Node.js microservices
Most of a new service's first commit is ceremony — transport wiring, serialization, a client, CI, a Dockerfile. Here's where the boilerplate hides and how to stop writing it by hand.
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 and coordinate releases across a fleet.
read →Testing services that call each other
Integration tests that require every service and its infrastructure running are slow, flaky, and painful. Here's a layered approach that tests most of your logic without spinning up the world.
read →