ZeroMQ driver implementation details

Registered by Oleksii Zamiatin

Existing driver implementation sticks to a universal socket pipeline approach.
This means that all messaging patterns are implemented over a single socket
pipeline.

In [1] there were proposed to switch from a splitted universal
forward(PUSH/PULL)+backward(PUB/SUB) pipeline to a unified REQ/REP
bidirectional pipeline. The change simplifies the driver implementation and
makes it more reliable but the pipeline still remains universal.

The main drawback of the universal pipeline is that it can not be optimized
for some specific messaging pattern. For example, if we would like to
make a FANOUT cast over a universal pipeline (PUSH/PULL or REQ/REP does not matter)
we have to emulate it over a number of direct casts while it could be
done over PUB/SUB zeromq pattern using a single api call.

This specification proposes to extend zmq driver implementation
with several specific socket pipelines according to each messaging pattern.

1. https://review.openstack.org/#/c/171131/

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Oleksii Zamiatin
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.