[fedmsg] Proposal on a replay mechanism

Simon Chopin chopin.simon at gmail.com
Mon Jul 8 13:39:56 UTC 2013


As some of you might know, I am the student working on adapting fedmsg
for Debian as part of Google Summer of Code program.

One of the requirements for fedmsg to be part of Debian infrastructure
is to be resilient in case a network link drops, as we have services
dispatched all over the world. Currently, if a client drops out, it has
no way of catching up on what happened when it was offline.

To solve this, I was thinking of the following: all the endpoints that
must be able to replay some messages should provide two URLs, say
tcp://foo.bar:3000 and tcp+pair://foo.bar:3001, the later listening in
for PAIR-type[1] connexions. The clients on the simple URL are like the
current clients, but the PAIR socket allow the other clients to request
the missing messages.

The query would come on the $prefix.replay.$topic topic (say,
org.fedoraproject.dev.replay.buildsys.build.state.change), and specify
the IDs to resend, or a time interval (for manual queries), and the
answer(s) would come on the same topic.

To be able to detect a missing message, the "i" field would have to be
topic-bound instead of being at the endpoint level.



[1] https://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/patterns/pair.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: signature
URL: <http://lists.fedoraproject.org/pipermail/messaging-sig/attachments/20130708/88e457c0/attachment.sig>

More information about the messaging-sig mailing list