Re: How to develop a new transport module

40 views
Skip to first unread message

Ask Solem

unread,
Jan 31, 2013, 7:48:50 AM1/31/13
to carrot...@googlegroups.com


On Saturday, November 3, 2012 12:51:36 AM UTC, Jeff Laughlin wrote:
Hello,

I am trying to develop a new transport module for Kombu. I'm trying to use the Antelope Orb protocol, which probably nobody has ever heard of, but it's a pretty straight forward messaging system.  http://www.crs.inogs.it/antelope/man/html/orb.3.html if your curious. Anyway I'm looking mainly at the memory and zeromq transport modules as a reference but it's very hard for me to figure out what parts of the Transport and Channel classes I need to implement and how. Is there any documentation on this? Can anybody please offer me some suggestion for how to get started? I would be much obliged.

Thanks,
Jeff


Realize that this is a late reply...

The zmq and redis transport are probably not the best places to start since they are very complex and actually duplicates common functionality.
This is because these transports must work asynchronously, and the libraries doesn't really support the way we're using them.

The memory transport is a good place to start since it implements the bare minimum required to set up a transport.
Most of the functionality is implemented in kombu.transport.virtual.

When you have a minimal transport set up to send and receive direct messages you can advance by implementing
broadcast (if required) and eventually async support (which makes the transport much better to use with Celery).

There's also the question about storing the routing tables in memory or on disk, if you store the routing tables in memory
you must make sure both producers and consumers declare the queues they send messages to (otherwise the messages will not be
delivered anywhere).

Creating a common implementation for broadcast and async is on my TODO, but sadly I have very little time 
Reply all
Reply to author
Forward
0 new messages