The Manorrock Colibri project delivers you with a eventing abstraction.
See Contributing
EventSender<String> sender;
sender.send("Receive me");
EventReceiver<String> receiver;
String event = receiver.receive()
See Code of Conduct
Note if you file issues or answer questions on the issue tracker and/or issue pull requests you agree that those contributions will be owned by Manorrock.com and that Manorrock.com can use those contributions in any manner Manorrock.com so desires.