FIX over AMQP

Imported from previous forum

Hi,

I am looking into the possibility of running FIX protocol over AMQP. As far as I know, FIX 5.0 / FIXT 1.1 allows transports other than TCP. However I couldn’t find much of resource about the actual implementation. Even Quickfix/J defaults to using sockets for sending session and application messages. Can anyone point me to a retry point that I can start with? Really appreciate it.

Thanks

Ming

Ming,

We send both FIX and FIXML messages over RabbitMQ(AMQP) - our approach is to simply render the FIX(or FIXML) message as a string. For example you can create an ExecutionReport in QuickFix and then get the raw FIX 5.0 message as a string.

We then publish the message string on the RabbitMQ using a routing key composed FIX Header.

John

Hi,

I am looking into the possibility of running FIX protocol over AMQP. As far as I know, FIX 5.0 / FIXT 1.1 allows transports other than TCP. However I couldn’t find much of resource about the actual implementation. Even Quickfix/J defaults to using sockets for sending session and application messages. Can anyone point me to a retry point that I can start with? Really appreciate it.

Thanks

Ming

Hi John,

In this approach, do you need to handle session management (login, logout, …,etc) by yourself? Since Quickfix takes cares of that internally and it’s done through a socket. The only thing that leverages Quickfix is message creation. Did I miss anything?

Thanks,

Ming

Ming,

We send both FIX and FIXML messages over RabbitMQ(AMQP) - our approach is to simply render the FIX(or FIXML) message as a string. For example you can create an ExecutionReport in QuickFix and then get the raw FIX 5.0 message as a string.

We then publish the message string on the RabbitMQ using a routing key composed FIX Header.

John

Hi,

I am looking into the possibility of running FIX protocol over AMQP. As far as I know, FIX 5.0 / FIXT 1.1 allows transports other than TCP. However I couldn’t find much of resource about the actual implementation. Even Quickfix/J defaults to using sockets for sending session and application messages. Can anyone point me to a retry point that I can start with? Really appreciate it.

Thanks

Ming

[ original email was from Jakub Scholz - www@scholzj.com ]
Hi,

In Deutsche Börse in the clearing area, we are using FIXML over AMQP. Since AMQP doesn’t really care about the format of the message payloads, I assume that you can encode FIX into the AMQP messages as well.

In our case, the AMQP takes care for the authentication, connectivity, sessions, security etc. The FIXML is used only to encode the functional message (i.e. “Application Level Message”). We are not using any messages from the “Session Layer” .

I don’t know Quickfix. On our system we usualy use our own modeling tools and libraries like libxml to create/encode & read the FIXML message. The FIXML body is put into the AMQP message and the rest is the AMQP interface.

Thanks & Regards
Jakub

Hi,

I am looking into the possibility of running FIX protocol over AMQP. As far as I know, FIX 5.0 / FIXT 1.1 allows transports other than TCP. However I couldn’t find much of resource about the actual implementation. Even Quickfix/J defaults to using sockets for sending session and application messages. Can anyone point me to a retry point that I can start with? Really appreciate it.

Thanks

Ming

Hi,

I am looking into the possibility of running FIX protocol over AMQP. As far as I know, FIX 5.0 / FIXT 1.1 allows transports other than TCP. However I couldn’t find much of resource about the actual implementation. Even Quickfix/J defaults to using sockets for sending session and application messages. Can anyone point me to a retry point that I can start with? Really appreciate it.

Thanks

Ming

Hi Ming,

Any chance you can do any of this on the .NET platform? If so, I have an open-source FIX engine I wrote that isn’t tied directly to sockets, so you could bolt that on to AMQP pretty easily. It’s all .NET code though, so if you’re on Linux or Mac then it wouldn’t be of use to you.

Cheers,

Russ