Robust design of FIX Implementation

Imported from previous forum

Hello,

I am newbie to FIX implemenation and trying to use Quick FIX as FIX engine. I have laid following frame work to develop simple trade application. The Orders were generated by our database and staged to FIX Engine using MsgType "D" and Msg Type "8" to send the trade recap allocation back to broker after complete execution of an Order. We may cancel or replace the STAGED order on discretionary basis by a Trader.

This is my current work flow looks like :

A new Order is populated to database then Send the Msg Type = "D".

In the (Msg Type "8") Ack back from broker, if OrdStatus is '0' then set an update of order status in database based on ClOrdID as it been STAGED.

In the (Msg Type "8") Ack back from broker, if OrdStatus is '1' then capture the partial fills to database.

In the (Msg Type "8") Ack back from broker, if OrdStatus is '2' then Order is filled completely send the Allocation Recaps to broker via Msg Type '8'.

In the (Msg Type "8") Ack back from broker, if OrdStatus is 'Rejected' then Order is pushed to Rejected Table in database.

In the (Msg Type "8") Ack back from broker, if OrdStatus is 'Cancel/Replace' then Order is pushed to Cancel/ Replace table in database.

All these Ack's are captured in onMessage(Execution Report, session) event function using Quick FIX Engine.

In case of, possDup set to TRUE on application message, I am not resending the order to the broker, by sending it to DoNotSend().

My question was, Is the above system robust enough ? Am I approaching the right direction of capturing all the events like fills, cancel/replace/ rejects via Execution Reports ? Is it a good way to capture events via Acks in a robust design ? Or I need to look for any other event handlers in the application ?

Any suggestion or information on design is helpful,

 

Thanks,

mupadras.