[zeromq-dev] Malamute tracker strings

Kevin Wang kevin at spikegadgets.com
Thu Sep 14 23:53:14 CEST 2017


Hi, I'm new to ZeroMQ and over the last few months have been working to 
integrate it into our software. We've landed on using Malamute, but the 
documentation for it is a little lacking and have had to look into the 
source code for some things.

Two things I am confused about are tracker strings and service requests.

1. How are service requests different from just being filtered direct 
messages? You still have to specify the address, subject, and content 
(optionally tracker and timeout), just like the mailbox pattern.

example:

Mailbox: mlm_client_sendto(client, address, subject, tracker, timeout, 
zmsg);

Service: mlm_client_sendfor(client, address, subject, tracker, timeout, 
zmsg);

For both, the receiver calls mlm_client_recv(client) the same way. I 
don't see how the mailbox pattern is different from the service pattern, 
other than the receiver having the ability to filter by subject using 
regex.

2. What are tracker strings for? I see in the proto.bnf that if it is 
specified, the sender is waiting for a confirm. How is that sent? 
Through  a mlm_client_sendto? Or is that done automatically? Is this 
something I even have control over as the user?

example:

sender: mlm_client_sendto(client, "sender", "subject", "track12345", 0, 
zmsg_obj);

receiver: mlm_client_recv(client);

--Does the receiver have to then send a confirmation reply? Is this done 
via mlm_client_sendto()? And how does the sender subsequently get the 
confirmation reply?


Thanks ahead of time, the entire ZMQ system is really awesome and 
inspiring! Fun to use and much cleaner than our current messaging system.

Kevin




More information about the zeromq-dev mailing list