IPC
Learn the importance of inter-process communication
In this section, we will demonstrate that TCP is the most suitable transport layer for FIX applications, with the possible alternative of Unix Domain Sockets (UDS) if the application is collocated.
A FIX session is a bi-directional channel between 2 remote hosts with the possible exception of 2 local hosts if the application is collocated. The protocol expects at least one message per heartbeat period in both directions.
This is clearly desirable for order management systems where both parties are interested in concluding a transaction with minimum delay. In that case, continuously checking that both ends of a network link are alive and responsive is very helpful. For market data, It’s conceivable to use one-way multicast stream and UDP. However, this design hits several issues with the FIX Protocol
-
Security and authentication - FIX requires opening and closing sessions with an exchange of login and logout message. Besides, UDP is connection-less which prevents using simple firewall rules for access control
-
Heartbeats - FIX includes its own keep-alive mechanism for any kind of session. A market data client is required to send regular heartbeats if inactive (which is most of the time)
-
Bandwidth and latency management - For performance reasons, a market data client can very well only subscribe to a subset of available market data. Besides, many vendors now charge the volume of data transferred
-
Delta encoding - For bandwidth management, many counterparties only send updates (MsgType X). It becomes essential not to miss an update and resend requests become indispensable. UDP doesn’t allow that
This shows that without significantly tweaking the FIX protocol, it becomes difficult to use UDP as the transport layer.

After analysis, it becomes clear that TCP is the overall standard for IPC with FIX. That’s why, the main option to improve IPC performances is to introduce a kernel-bypass stack. Many technologies are available today
This Cloudflare’s post has an excellent summary. A notable exception happens when both ends are running on the same host in which case a standard Unix Domain Socket connection can advantageously replace a TCP connection. IdeaFIX supports it, check it out !
Other vendors have decided to develop their own IPC mechanism based on shared memory. This provides excellent latencies. However, no standard have come on top and choosing a custom IPC technology significantly restricts interoperability.
Saying all of that, There are currently a lot of progress made in standard user-space UDP-based transport protocol