[zeromq-dev] Formally modelling the publish-subscribe pattern

John Lång john.lang at mykolab.com
Sun Oct 18 07:18:39 CEST 2020


Hi Kevin,

Thanks again!

Cheers,
John

On 17.10.2020 18.04, Kevin Sapper wrote:
> Hi John,
>
>     When the mute state ends, which messages does the subscriber
>     receive? Those that were in the queue when the mute state began or
>     those that the publisher sent after the mute state ended? From
>     Bill Torpey's answer, I got the impression that it's the messages
>     sent after the ending of the mute state. This would be the
>     preferable behaviour for my particular application. For my
>     purposes, the latest messages are more valuable than the old ones.
>     This question affects the way how I need to represent the
>     connection in PROMELA.
>
> The first case, those that were in the queue when the mute state began.
>
>     On 16.10.2020 14.44, John Lång wrote:
>>
>>     Hi Kevin,
>>
>>     Thanks for the clarification!
>>
>>     Best regards,
>>     John
>>
>>     On 16.10.2020 14.39, Kevin Sapper wrote:
>>>
>>>     Hi John,
>>>
>>>           * SHALL create a queue when initiating an outgoing
>>>             connection to a subscriber, and SHALL maintain the queue
>>>             whether or not the connection is established.
>>>
>>>     This action is taken when a SUB socket binds to an address and
>>>     the PUB socket connects to it.
>>>
>>>           * SHALL create a queue when a subscriber connects to it.
>>>             If this subscriber disconnects, the PUB socket SHALL
>>>             destroy its queue and SHALL discard any messages it
>>>             contains.
>>>
>>>     This action is taken when a PUB socket binds to an address and
>>>     the SUB socket connects to it.
>>>
>>>         What is the difference between initiating an outgoing
>>>         connection to a subscriber and a subscriber connecting to a
>>>         publisher? In the C++ source code of my system, a publisher
>>>         binds to a PUB socket and a subscriber connects to the
>>>         address of a publisher. I guess this sounds more like the
>>>         second point, but I'm not certain.
>>>
>>>     Yes, the second point!
>>>
>>>         Did I understand correctly that this message queue between a
>>>         publisher and a subscriber works FIFO? It says that for
>>>         outgoing messages, "SHALL silently drop the message if the
>>>         queue for a subscriber is full." Does this imply that those
>>>         messages that fit in the queue are delivered in the order
>>>         they were sent in? I take it that the queue being full means
>>>         that the high water mark has been exceeded.
>>>
>>>     When a PUB socket enters the mute state due to having reached
>>>     the high water mark for a subscriber, then any messages that
>>>     would be sent to the subscriber in question shall instead be
>>>     dropped until the mute state ends. The send function does never
>>>     block for this socket type.
>>>
>>>         What is a binary comparison? Is it the same as bitwise
>>>         comparison? To me, "binary comparison" sounds like just
>>>         comparing two things with each other.
>>>
>>>     It means that the byte content of the first frame is compared
>>>     against the bytes of a subscription. Hence a subscription can
>>>     use any binary prefix not just characters.
>>>
>>>     //Kevin
>>>
>>>
>>>     _______________________________________________
>>>     zeromq-dev mailing list
>>>     zeromq-dev at lists.zeromq.org  <mailto:zeromq-dev at lists.zeromq.org>
>>>     https://lists.zeromq.org/mailman/listinfo/zeromq-dev  <https://lists.zeromq.org/mailman/listinfo/zeromq-dev>
>     _______________________________________________
>     zeromq-dev mailing list
>     zeromq-dev at lists.zeromq.org <mailto:zeromq-dev at lists.zeromq.org>
>     https://lists.zeromq.org/mailman/listinfo/zeromq-dev
>     <https://lists.zeromq.org/mailman/listinfo/zeromq-dev>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20201018/5d1e63db/attachment.htm>


More information about the zeromq-dev mailing list