Lately some colleagues and me were reasoning on how to do client-side (Browser, JavaScript) communication between web-page components … decoupled … in general I recommend taking a look at an event-bus (aka page-bus), with Java why not take a look at the refcodes-eventbus? … the following “equation” came to mind … simply speaking, the equation “Observer pattern” + “Publish/Subscribe pattern” = “Message broker” solves to “refcodes-eventbus”
Lightweight message broker = event-bus?
A lightweight “Message broker” can be a good solution for requirements doing in-“JVM” (Java Virtual Machine) communication as of:
- Signaling “events” to some “event-listener” …
- Subscribing your “event-listener” for some specific “events” …
- Publishing “events” merely to interested “event-listeners” …
- Strongly decoupling the “publisher” and the “subscriber” …
- Considering privacy issues (no simple broadcast) …
In the article refcodes-eventbus: Observer + Publish/Subscribe = Message broker I describe the “refcodes-eventbus” accompanied with a plain simple example on how to use it.
The “refcodes-eventbus” artifact makes use of the “refcodes-matcher” framework for defining the “criteria” on when to deliver an “event” to an “event-listener”. It also sets on top of the “refcodes-observer” framework regarding issues around the “Observer pattern” …
Beyond the realms of your JVM …
Combining the “refcodes-eventbus” with the “refcodes-remoting” “RPC” (remote procedure call) framework would extend the “refcodes-eventbus” beyond the borders of a single “JVM”. Regarding “RPC”, see also the article on refcodes-remoting: Face-to-face lightweight remote method calls!