Exinitic FIXEngine & FIX Gateway (Milestone 2)
Proposed architecture
Designed by Zobad Mahmood
Exinitic FIXEngine & FIX Gateway
Introduction
The Exinitic FIXEngine & FIX Gateway project aims to develop a high-performance Order Management System (OMS)
for Liquidity Providers (LP) Takers and Makers. Our goal is to ensure seamless connectivity and efficient order execution
in the OTC markets, while adhering to industry best practices.
Key Objectives:
● Seamless Connectivity: Enable fast and reliable order routing and execution by integrating with various market
participants and trading platforms.
● Efficient Order Execution: Optimize order execution with minimal latency and maximum performance, leveraging
advanced algorithms and real-time market data.
● Price Feed Aggregator: Consolidate real-time market data from multiple sources to provide comprehensive and
accurate pricing information based on best Bid and Offer.
Exinitic FIXEngine & FIX Gateway (Proposed)
Takers FIX Engine
Market Data
F Makers
LPs F
Public I Data Normalizer I LPs
X X
Platform1 (FIX
Raw messages CTrader
API) P Execution Manager P
Platform 2 a Marketdata storage a
for 3rd r
r Storage Deutsche
party s RMS s Bank
e e
Platform 3 takers Order Manager
r Backoffice records r
Order Router
Saxo Bank
Milestone 1 Feed Aggregator Admin UI
Logs monitoring
Milestone 2 Private API for internal use (REST API) Orders/Executions
monitoring
Milestone 3 Error logs/handling
Existing backend
Exinitic FIXEngine & FIX Gateway (Milestone 2)
Market Data FIX Engine Makers
F
I LPs
X
CTrader
Execution Manager Execution storage P
a
Storage r
s Centroid
Marketdata storage e
Order Manager
r
Saxo Bank
Admin UI
Private API for internal use (REST API)
Logs monitoring
Orders/Executions
Existing backend monitoring
Error logs/handling
Exinitic FIXEngine & FIX Gateway (Milestone 2)
Components (Part 1)
● Private REST API: Our private rest api would allow our existing trading application to communicate with FIX
Engine
● RabbitMQ: To provide our trading backend application with Marketdata, execution logs, we will use rabbitMQ.
● Rest api core endpoint:
○ Connect/Disconnect LP: We will use this endpoint from the trading backend to connect/disconnect
with a specific LP.
○ Subscribe/Unsubscribe MarketData LP: This endpoint will be used to subscribe a specific symbol or
a set of symbols from LP.
○ SendOrder LP: Using this endpoint, we can place orders to a specified LP
○ ModifyOrder LP: Using this endpoint, we can modify an existing pending order
○ CloseOrder LP: Using this endpoint, we can close an existing pending order (not position) on a
specified LP
Exinitic FIXEngine & FIX Gateway (Milestone 2)
Milestone 2 Milestone 3
● Private Rest API ● Price Aggregation
● Symbols table (DB) ● Order routing
● Integration with backend (trading app) ● Accounts LP routing settings (DB table)
● Display price feed (via rabbitmq) ● Connectivity with a real LP
● Send Orders request (via Rest API) ● Conformance testing
● Receive execution reports (via rabbitmq) ● market data tick data
● Raw Fix messages ● Orders request logs