RFQ
A request for Quote is generally a 2-way conversation between a trader and a dealer that may involve updates to the price/time or availability of the quoted item over a short period of time.
There are many variations on this, but in general the items we would need are a private ordered queue for each individual and an ordered queue (which may or may not be multiplexed with other quotes) for the dealer. For rubris-io this functionality is provided by private topics as a Conversation
.
Additionally, one would normally expect that the Users shared the same Channel
for their conversations and the dealers a different Channel
which could be permissioned differently.
Each Conversation
queue can be private to a particular quote identifier, or shared if required and any number of concurrent Conversations
can be run without interference or overlap.
A simple example would be something like:
We can see that really the only complexity is in the routing handler code if we have multiple dealers and in this case the payload (or topic name) can be used to act as meta data in steering information.
The mechanisms of the design in this case is for rubris-io to act in a manner akin to a telephone switch as a message passing conduit and not interfere in the transaction (which is what we want).