A high-performance financial messaging gateway designed to bridge the gap between FIX (Financial Information eXchange) trading protocols and ISO 20022 payment standards.
- Java 21 Virtual Threads: Built on
newVirtualThreadPerTaskExecutorto handle massive throughput with minimal memory overhead. - Dictionary-Based Parsing: Uses QuickFIX/J for professional-grade FIX message decomposition.
- XSD Validation: Ensures all generated ISO 20022 XML complies with specific market schemas (sese.023) before delivery.
- Multi-Market Support: Strategy-based mapping for Singapore (MEPS+), Japan (Zengin), UK (CHAPS), and USA (FedWire).
- Reactive Ingress: Netty-based TCP server for low-latency message ingestion.
- Reliable Egress: Integrated Kafka producer with configurable resilience and blocking timeouts.
- Ingress: Netty listens on TCP port
9876. - Dispatch: Messages are handed off to Virtual Threads.
- Transform:
UniversalMessageMapperparses FIX and injects data into XML templates. - Validate: XML is validated against market-specific
.xsdfiles. - Egress: Final ISO payload is published to Kafka.
- Java 21+
- Maven 3.9+
- Docker (optional)
mvn clean installBash
docker build -t fix-iso-mapper .
docker run -p 9876:9876 fix-iso-mapper
Send a sample Execution Report via Netcat:
Bash
printf "8=FIX.4.4|9=122|35=8|44=100.25|10=031|\n" | nc localhost 9876
The included LoadTest.java demonstrates the efficiency of Virtual Threads by processing 10,000 messages in under 5 seconds on standard consumer hardware
MIT