Routing through more than one FIX hub

Imported from previous forum

I’m using FIX 4.2 and have a question regarding the FIX header when routing through more than one hub. In my particular setup, my FIX messages need to go through two FIX hubs before they reach my broker’s FIX engine. Should I be using DeliverToSubID to hold routing information? As an example, assuming that MY-FIX-ENGINE sends messages for BROKER-FIX-ENGINE through FIX-HUB-1 and FIX-HUB-2, would the header field values look as follows?

SenderCompID = MY-FIX-ENGINE
TargetCompID = FIX-HUB-1
DeliverToCompID = FIX-HUB-2
DeliverToSubID = BROKER-FIX-ENGINE

What would the subsequent field values be when the message leaves FIX-HUB-1 and FIX-HUB-2?

Any help would be greatly appreciated.

Thanks.
Nik

[ original email was from Terrence Kim - tkim@statestreet.com ]
Hello Nik,

Hub to Hub routing can be bit tricky but possible.
Please feel free to contact me directly offline to discuss further on multiple routing methods.
Thank you.

Terrence C. Kim
Vice President

State Street Global Markets •One Lincoln Street • Box 5501 • Boston • MA • 02206 • Tel: 617.664.7548
BlackBerry:617.331.6753 • tkim@statestreet.com • AIM: FIXHub • www.statestreet.comwww.globallink.com

I’m using FIX 4.2 and have a question regarding the FIX header when
routing through more than one hub. In my particular setup, my FIX
messages need to go through two FIX hubs before they reach my broker’s
FIX engine. Should I be using DeliverToSubID to hold routing
information? As an example, assuming that MY-FIX-ENGINE sends messages
for BROKER-FIX-ENGINE through FIX-HUB-1 and FIX-HUB-2, would the header
field values look as follows?

SenderCompID = MY-FIX-ENGINE TargetCompID = FIX-HUB-1 DeliverToCompID =
FIX-HUB-2 DeliverToSubID = BROKER-FIX-ENGINE

What would the subsequent field values be when the message leaves FIX-HUB-
1 and FIX-HUB-2?

Any help would be greatly appreciated.

Thanks. Nik

Hi,

the FIX specs do not cover more than a one-hop scenario.

The repeating hop group is just there to keep a “trail” of hops taken(sigh).

To solve this you would have to agree on a method between you and the hub providers to route correctly. There are a numbers of ways this can be done. Yes you can use the subID but this still will have to be agreed on with one of the hubs on your route;- The second hub will either have to auto route for you(with some code/script logic) or they will have to fill in addressing fields for you in your message headers.
It depends on the FIX servers they are using.

Some FIX engines may already cater for some extra fields being used for additional routing…

btw - the more hope - the more risk - you wont know of they are all connected- more support etc…

my 2p
Byron

I’m using FIX 4.2 and have a question regarding the FIX header when
routing through more than one hub. In my particular setup, my FIX
messages need to go through two FIX hubs before they reach my broker’s
FIX engine. Should I be using DeliverToSubID to hold routing
information? As an example, assuming that MY-FIX-ENGINE sends messages
for BROKER-FIX-ENGINE through FIX-HUB-1 and FIX-HUB-2, would the header
field values look as follows?

SenderCompID = MY-FIX-ENGINE TargetCompID = FIX-HUB-1 DeliverToCompID =
FIX-HUB-2 DeliverToSubID = BROKER-FIX-ENGINE

What would the subsequent field values be when the message leaves FIX-HUB-
1 and FIX-HUB-2?

Any help would be greatly appreciated.

Thanks. Nik

[ original email was from Daniel Saad - dsaad@transacttools.net ]
Nik,

Conversely, this design is somewhat easier to manage if you look at each HUB as separate entities. By separate entities I mean, FIX HUB-1 should only know that it routes to FIX HUB-2. FIX HUB-2 acts as its one entity, and routes based on logic provided. You can use meta-data internally, to determine where return trip messages should be sent.

Additionally, FIX 4.3/4.4 implements SMH-HopsGroup. You may want to consider retroactively adopting these fields; but not a ideal solution.

Daniel Saad
TransactTools-New York
www.transacttools.net

I’m using FIX 4.2 and have a question regarding the FIX header when
routing through more than one hub. In my particular setup, my FIX
messages need to go through two FIX hubs before they reach my broker’s
FIX engine. Should I be using DeliverToSubID to hold routing
information? As an example, assuming that MY-FIX-ENGINE sends messages
for BROKER-FIX-ENGINE through FIX-HUB-1 and FIX-HUB-2, would the header
field values look as follows?

SenderCompID = MY-FIX-ENGINE TargetCompID = FIX-HUB-1 DeliverToCompID =
FIX-HUB-2 DeliverToSubID = BROKER-FIX-ENGINE

What would the subsequent field values be when the message leaves FIX-HUB-
1 and FIX-HUB-2?

Any help would be greatly appreciated.

Thanks. Nik

IMHO, firstly, MY-FIX-ENGINE (MFE), FIX-HUB-1 (FH1), FIX-HUB-2 (FH2) and BROKER-FIX-ENGINE (BFE) will have to agree upon the intended use of following tags.

  1. MFE to FH1
    SenderCompID = MFE
    TargetCompID = FH1
    DeliverToCompID = FH2
    DeliverToSubID = BFE

  2. FH1 to FH2
    SenderCompID = FH1
    TargetCompID = FH2
    DeliverToCompID = BFE

DeliverToSubID = BFE //can ignore

OnBehalfOfCompID= MFE

  1. FH2 to BFE
    SenderCompID = FH2
    TargetCompID = BFE

DeliverToCompID = BFE //can ignore

DeliverToSubID = BFE //can ignore

OnBehalfOfCompID= FH1
OnBehalfOfSunID= MFE

Lets go back now:

  1. BFE to FH2
    SenderCompID = BFE
    TargetCompID = FH2
    DeliverToCompID = FH1
    DeliverToSubID = MFE

  2. FH2 to FH1
    SenderCompID = FH2
    TargetCompID = FH1
    DeliverToCompID = MFE

DeliverToSubID = MFE //can ignore

OnBehalfOfCompID= BFE

  1. FH1 to MFE
    SenderCompID = FH1
    TargetCompID = MFE

DeliverToCompID = MFE //can ignore

DeliverToSubID = MFE //can ignore

OnBehalfOfCompID= FH2
OnBehalfOfSubID= BFE

I think by this, at any stage ( 1, 2, 3, 4, 5, 6 ) you can find out that a particular message should from where to where.

HTH
Himanshu

I’m using FIX 4.2 and have a question regarding the FIX header when
routing through more than one hub. In my particular setup, my FIX
messages need to go through two FIX hubs before they reach my broker’s
FIX engine. Should I be using DeliverToSubID to hold routing
information? As an example, assuming that MY-FIX-ENGINE sends messages
for BROKER-FIX-ENGINE through FIX-HUB-1 and FIX-HUB-2, would the header
field values look as follows?

SenderCompID = MY-FIX-ENGINE TargetCompID = FIX-HUB-1 DeliverToCompID =
FIX-HUB-2 DeliverToSubID = BROKER-FIX-ENGINE

What would the subsequent field values be when the message leaves FIX-HUB-
1 and FIX-HUB-2?

Any help would be greatly appreciated.

Thanks. Nik