Skip to content

hoppity

Contract-driven RabbitMQ topology builder for Node.js microservices, built on Rascal.

Contract-Driven Topology

Define domain contracts with Zod schemas. Hoppity derives all exchanges, queues, bindings, publications, and subscriptions automatically. No topology files. No manual Rascal config.

Builder Pattern

Fluent API with hoppity.service(name, config).use(middleware).build(). Declare handlers and publishes, get back a fully-wired ServiceBroker.

TypeScript-First

Written in TypeScript with full type safety. Strict mode, proper generics, Zod-inferred payload types from contract to handler to broker method.

Built on Rascal

Standing on the shoulders of a proven RabbitMQ library. Hoppity adds contract-driven topology derivation, typed handlers, and composable middleware on top.

Built-in RPC

Request/reply with correlation IDs, configurable timeouts, automatic reply queue management, and typed request/response contracts — all in core.

Middleware for Cross-Cutting Concerns

Pass a custom logger directly in ServiceConfig, or write your own middleware for any cross-cutting concern. Delayed delivery is built into core via contract-level delay declarations.

Interceptors and Observability

Wrap handler and publish execution for tracing, metrics, and header injection. hoppity-open-telemetry ships ready-made OTel interceptors — drop in withTracing and withMetrics and you are done.