January 26, 2026
Benchmarks vs Bus: comment brawl
Emissary, a fast open-source Java messaging library
Speed hype vs simple vibes: Emissary’s name drama explodes
TLDR: Emissary, renamed from Deezpatch, promises super‑fast in‑app messaging with simple labels and no heavy extras. Comments clash over bold speed claims, a name conflict with an ActivityPub server, and the need for an “instance provider,” pitting performance hype against fans of simpler tools like Guava’s EventBus.
Emissary is the new kid on the block promising a “no extras, blazing fast” way for apps to pass messages between parts. It uses simple labels (think sticky notes like @RequestHandler) to route messages without the usual slow mirror‑checking, and boasts eye‑popping benchmarks—“up to 10x more messages,” the team flexes. Supporters cheered the speed hype, with the creator repeating the pitch and inviting stars. Claim‑to‑fame: it aims to make CQRS—splitting “do stuff” and “get info”—dead simple.
But the comments turned spicy fast. One reader flagged a name collision with an ActivityPub server called emissary.dev, cue confusion and memes about the project’s previous name, “Deezpatch,” getting a witness‑protection glow‑up. The biggest pushback? Guava EventBus loyalists argue this adds setup without payoff, asking, “Why do we need an instanceProvider?” Translation: it needs a way to find your app’s components (often through frameworks like Spring), which some see as extra baggage versus plug‑and‑play tools. Now it’s speed bragging vs simplicity purists: are LambdaMetafactory tricks worth the fuss, or is plain old EventBus good enough? The thread turned into a friendly‑but‑feisty showdown—name mix‑up, benchmark flexes, and the eternal dev debate: fast vs familiar.
Key Points
- •Emissary is an open-source, no-dependency Java messaging library that decouples messages (requests/events) from handlers using annotations.
- •It uses LambdaMetafactory to avoid reflection, with claimed benchmarks showing ~1000% higher throughput and ~90% faster performance than Spring’s ApplicationEventPublisher, Pipelinr, and EventBus.
- •The project was formerly named Deezpatch; the core artifact was renamed to emissary-core starting in v2.0.0, with corresponding Java 9 module name changes.
- •Artifacts are available via Gradle and Maven; JARs include Automatic-Module-Name, and module authors can require io.github.joeljeremy.emissary.core in module-info.java.
- •Usage examples show defining Request types and @RequestHandler methods, dispatching via Emissary (Dispatcher), and integrating with DI frameworks like Spring, Guice, and Dagger via an InstanceProvider.