We want to hook all the services in Fedora Infrastructure up to send messages to one another over a message bus instead of communicating with each other in the heterogenous, “Rube-Goldberg” ways they do now.
fedmsg (Fedora-Messaging) is a python package and API used around Fedora Infrastructure to send and receive messages to and from applications. See Overview for a thorough introduction.
Click here to see a feed of the Fedora bus. There’s also a #fedora-fedmsg channel on the freenode network with a firehose bot echoing messages to channel to help give you a feel for what’s going on.
import fedmsg
# Yield messages as they're available from a generator
for name, endpoint, topic, msg in fedmsg.tail_messages():
print topic, msg
$ fedmsg-tail --really-pretty
See Development on setting up your environment and workflow.
import fedmsg
fedmsg.publish(topic='testing', modname='test', msg={
'test': "Hello World",
})
$ echo "Hello World." | fedmsg-logger --modname=git --topic=repo.update
$ echo '{"a": 1}' | fedmsg-logger --json-input
$ fedmsg-logger --message="This is a message."
$ fedmsg-logger --message='{"a": 1}' --json-input
The source for this document can be found on github. The issue tracker can be found there, too.
Almost all discussion happens in #fedora-apps on the freenode network. There is also a mailing list.
Note
Proposal - Fedora Messaging with 0mq (fedmsg) is a now out-moded document, but is kept here for historical purposes.