[zeromq-dev] Should 0MQ be used and what socket types to use?

Niels Berglund niels.it.berglund at gmail.com
Sat Jan 26 06:58:04 CET 2013

Hi all!
I am working for a company whose business is similar to online financial
trading, where the similarities are the requirement for low latency and
high throughput.

The systems are situated in data centers across the world, and clients
connect over the internet to an individual system. A system consists of a
software router which routes requests from clients to back-end services,
and responses to the clients from the services. The services may also send
unsolicited messages to the clients.

There are a limited number of back-end services, but there could
theoretically be an infinite number of concurrent users.  Obviously there
are limitations how many clients can connect to one specific software
router, but there would then be multiple machines with software routers for
the clients to connect to.

We are now looking at the future architecture, and part of that is
communication mechanisms. The underlying OS for this is Windows and at the
moment we are using Microsoft's socket library. Our socket code are
functional, but not pretty and I have a feeling that if we were to change
to something like 0MQ, etc., it would be beneficial for us.

So my questions are:
1. Would an architecture like the above be feasible using 0MQ?
2. What 0MQ socket types would be best for an architecture like this? My
thoughts are that clients would connect to the software router using a
DEALER socket (seeing that we want full asynch, and that the client could
send multiple requests without requiring a reply in between). The
client-facing socket in the software router would be a ROUTER socket, but I
am not sure if the client service facing socket in the software router
should be a ROUTER or DEALER? As for the services, they would connect to
the software router using a DEALER socket.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130126/386b409c/attachment.htm>

More information about the zeromq-dev mailing list