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.
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.