The Bugzilla server-side extension I released previously has been renamed to bugzilla-push. It can now be found at http://github.com/LegNeato/bugzilla-push. The main impetus for the name change was that it now supports STOMP in addition to AMQP. It seemed silly to keep “amqp” in the name when it supports multiple protocols.
The reason for adding STOMP support is to keep my message broker options open. While RabbitMQ is pretty nice, it may not meet the needs for pulse.mozilla.org once it gets out of prototype mode. All open source brokers (HornetQ, Apache ActiveMQ & Qpid, Redhat MRG, etc) have pledged to support AMQP eventually, but many have not implemented it. Most have implemented STOMP though, as the protocol is both stable and simple. The extension now gives the Bugzilla administrator the option of choosing which protocol to use based on their requirements.
Notable changes since I last blogged:
- Pluggable backends with optional CPAN dependencies. If you don’t want to use AMQP, you don’t need to have those dependencies installed
- Added simple support for message security. This was a major hurdle for getting bugzilla-push rolled out on bugzilla.mozilla.org. I intend to beef it up more in the coming weeks as well
- Fixed a bug where false values were being sent as “0” in the JSON messages instead of JSON’s false
- Fixed support for using vhosts that are not “/” (the AMQP default)
Planned in the next week:
- Supporting YAML for message encoding
- Supporting Python’s pickle for message encoding
- Get the extension rolled out on landfill.bugzilla.org
- Test, test, test
- Ask for security review from Mozilla’s web security team