Emissary (formerly Deezpatch) A simple-to-use, no dependency, yet 🗲BLAZING FAST🗲 messaging library for decoupling messages (requests and events) and message handlers 🚀 Emissary aims to take advantage of the simplicity of using the annotations for handlers (e.g. @RequestHandler / @EventHandler ) without the drawbacks of reflection (slow). Emissary aims to make it easy to build applications that apply the Command Query Responsibility Segregation (CQRS) pattern, but it is not in any way limited to that pattern only. Like the project? Please consider giving the repository a ⭐. It means a lot! Thank you :) Get Emissary Important Up until v1.1.0, the core library is published under the old deezpatch-core name. This has been renamed to emissary-core starting from v2.0.0 onwards. Gradle implementation " io.github.joel-jeremy.emissary:emissary-core: ${ version } " Maven < dependency > < groupId >io.github.joel-jeremy.emissary</ groupId > < artifactId >emissary-core</ artifactId > < version >${version}</ version > </ dependency > Java 9 Module Names Important Up until v1.1.0, the core library has the module name io.github.joeljeremy.deezpatch.core . This has been renamed to io.github.joeljeremy.emissary.core starting from v2.0.0 onwards. Emissary jars are published with Automatic-Module-Name manifest attribute: Core - io.github.joeljeremy.emissary.core Module authors can use above module names in their module-info.java: module foo . bar { requires io . github . joeljeremy . emissary . core ; } Performance What differentiates Emissary from other messaging/dispatch libraries? It takes advantage of java.lang.invoke.LambdaMetafactory to avoid the cost of invoking methods reflectively. This results in performance close to directly invoking the request handler and event handler methods! ~ 1000% more throughput compared to other similar libraries (Spring's ApplicationEventPublisher, Pipelinr, EventBus) ~ 90% faster compared to other similar libraries (Spring's ApplicationEventPublis...
First seen: 2026-01-26 09:57
Last seen: 2026-01-26 12:57