The Financial Information Exchange (FIX) Gateway is a critical component designed to facilitate communication between Börse Stuttgart Digital Exchange (BSDEX) and external trading venues using the FIX Protocol 4.4. Acting as a bridge, it translates messages between BSDEX's internal trading systems and external initiators, enabling seamless electronic trading.
Key Features
- Session Management: Handles FIX protocol session initiation, authentication, and management, ensuring stable and secure connections.
- Order Management: Supports efficient order handling, processing incoming orders, and managing execution report flows.
- Market Data Handling: Provides complete market data snapshots for real-time trading insights, delivers incremental updates to market data.
Technologies
- Languages: Go (Golang)
- FIX Protocol: FIX4.4 with QuickFIX/Go
- Data Store: PostgreSQL, Memcache
- Infrastructure: Docker, Kubernetes, AWS, Gitlab
- Monitoring and Analytics: Prometheus, Grafana for performance monitoring
- Logging and Error Tracking: Sentry for real-time error monitoring and alerting
Challenges and Solutions
Challenge: Handshaking, initial authentication, and session management within the FIX Protocol were complex, especially in maintaining secure and stable connections.
Solution: Developed a comprehensive end-to-end testing client, a mock auth server to demonstrate and validate the FIX Gateway's functionality, ensuring robust handshaking and authentication processes.
Challenge: Managing execution reports, which required seamless interaction with another microservice, the WebSocket Gateway.
Solution: Built specialized generic package to ensure smooth coordination between the FIX Gateway and the WebSocket Gateway, optimizing the handling of execution reports to maintain data consistency and accuracy across services.
Impact
The FIX Gateway greatly enhanced BSDEX's integration capabilities, providing faster and more reliable trading connections with external partners. It complemented the existing REST API and WebSocket Gateways, effectively distributing the load among business customers and improving overall trading efficiency and market connectivity.
Role and Contributions
As a Senior Software Engineer, I had the opportunity todevelop the FIX Gateway from scratch
while collaborating closely with team, specifically considering the FIX 4.4 protocol standards. A notable contribution was implementing robust benchmarking to analyze transaction performance, lifecycle, and execution report timing, addressing the complexities of coordinating with three critical microservices: Identity Server, Exchange Microservice, and WebSocket Gateway. This ensured smooth transactions and accounted for challenging edge cases.
Additionally, I developed a comprehensive end-to-end testing client to demonstrate and validate the system’s functionality.