This release basically rewrites the inner workings of Mercury with no changes to its functionality. Mercury is now divided into a few different parts:
- The Mercury broker which is a standalone application providing a message broker over WebSockets.
- Mercury::Controller classes which establish WebSocket connections allow you to build a custom message broker using Mojolicious and Mojolicious::Plugin::Mercury. Your custom broker can add authentication, logging, access control, and other features.
- Mercury::Pattern classes which allow you to build your own messaging patterns. This includes combining existing patterns to have a job queue that also sends event notifications, for example. See Mojolicious::Plugin::Mercury for more details.
This new architecture should make it easy to enhance Mercury with new features, and to add it into your own application.
There are still lots of features I want to add to the broker, including administrative APIs, pluggable authentication, and access control. If you'd like to help, join us on irc.perl.org #statocles.
Full changelog inside...