RxFixTerminal – Technical Stack
and Architecture
RxFixTerminal is a high-performance trading system designed for real-time market data processing, signal generation, and automated trade execution. The system is built using a microservices architecture, leveraging FIX protocol, Apache Kafka, and REST API for seamless communication and integration.
1. Communication and Messaging
RxFixTerminal employs multiple communication protocols to ensure efficient data flow and trade execution:
- FIX Protocol – Used for broker communication via QuickFIX/J, an open-source Java FIX engine.
- Apache Kafka – Handles event-driven streaming for market data, trade signals, and execution reports.
- REST API (JSON-based) – Facilitates service-to-service and GUI-to-service communication.
2. Core Microservices (Java + Spring Framework)
RxFixTerminal consists of three primary backend services, each built using Java and Spring Framework:
📌 RxGateway (Broker Communication & Message Routing)
- Acts as the FIX gateway, connecting to the broker (LMAX).
- Handles trade execution, market data retrieval, and FIX message routing.
- Publishes market data and execution reports to Kafka.
📌 RxModeler (Market Data Processing & Signal Generation)
- Consumes market data from Kafka and generates trading signals.
- Defines and executes custom trading models and strategies.
- Publishes trade signals to Kafka, which are later consumed by RxTrader.
📌 RxTrader (Trade Execution & Order Management)
- Listens to signals from RxModeler via Kafka.
- Handles order execution, position management, and risk control.
- Sends execution reports back to Kafka and RxGUI via REST API.
3. User Interface (JavaFX Desktop GUI)
📌 RxGUI
- Built with JavaFX, providing a graphical user interface for monitoring and controlling the trading system.
- Interacts with RxGateway, RxModeler, and RxTrader via REST API.
- Acts as a Kafka consumer, receiving real-time updates on market data, orders, and execution reports.
4. Custom Libraries Used in RxFixTerminal
To enhance flexibility and modularity, RxFixTerminal includes two in-house Java libraries:
📌 rx-core - lib
- Core framework that includes:
- Custom FIX protocol extensions (user-defined FIX fields).
- Kafka topic definitions for structured event streaming.
- Core communication methods and utilities for message parsing and validation.
- Defines value parameters and constants used across the system (ensures standardization of parameters across different services)
- Ensures seamless integration and message standardization across microservices.
5. Summary – Why This Architecture?
- High performance & scalability – Kafka-based asynchronous messaging.
- Low latency trade execution – FIX-based broker communication with QuickFIX/J.
- Modular & extensible – Microservices with REST APIs and custom libraries.
- Real-time monitoring & control – JavaFX GUI with Kafka integration.
This hybrid event-driven and request-response architecture allows for scalable, efficient, and real-time trading operations, making RxFixTerminal a powerful solution for algorithmic and high-frequency trading environments. 🚀