[[http://fedmsg.com/|FedMsg]] is the message passing system based on ZeroMQ used by the Fedora project for its infrastructure. There's been a project (see SummerOfCode2013/StudentApplications/SimonChopin) to adapt this system for Debian use. == Topology == Each Debian service should have its own public endpoints. Furthermore, there will be a publicly accessible relay that will subscribe to all available *.debian.org enpoints as well as the *.debian.net endpoints, and send out messages from the former on one endpoint and another for the latter, to keep the distinction between official services. NB: Currently, there is only one open relay endpoint at tcp://fedmsg.debian.net:9940 and all messages it sends out are from *.debian.net services, but this will almost certainly change in the future. == Topic scheme == Each message published on the bus should have a naming scheme of the form {{{org.debian.$ENV.$SERVICE.$OBJECT(.$SUBOBJECT).$EVENT}}} With: * $ENV in ['dev', 'stg', 'production'] * $SERVICE being the name of the service. We chose to use the name of the implementation rather than the host, i.e. dak rather than ftp-master, since a change of implementation would probably change the topic scheme anyway, and it matches the scheme our friends over at Fedora use. * $OBJECT is a singular noun such as package, bug, whatever is the type of object to which the event relates. * $EVENT is the event triggering the message emission. ``upload``, ``reject``, ``migration`` would be possible events for a package, for instance. == Demonstration == The current fedmsg setup in Debian passes messages to a IRC gateway, allowing events to be seen on #debian-fedmsg (irc.debian.org).