The Order Processor Demo showcases the implementation of services using messages based on the Financial Information Exchange (FIX) protocol. This project simulates an order processing system, including features such as creating new orders, cancelling specific orders, and cancelling all orders. The project is designed to mimic real-world financial trading systems, demonstrating how such a system can be built using Java.
To get started with the Order Processor Demo, you need to clone the repository to your local machine. Once you have cloned the repository, you can open it in your IDE of choice (we recommend IntelliJ CE for this project).
Before you begin, ensure you have the following installed:
-
Java Development Kit (JDK): Java 8 Update 202+, Java 11, Java 17, or Java 21
-
Apache Maven: Version 3.6.5 or higher
-
Integrated Development Environment (IDE): IntelliJ IDEA Community Edition (recommended) or any other IDE
-
Internet Access: Required for Maven to download necessary dependencies
Here are the steps to clone the repository and open it in IntelliJ:
-
Clone the repository with
git clone <repository_url>
-
Open IntelliJ IDE and select 'Open'
-
Navigate to the cloned repository and click 'Open'
-
Wait for the IDE to import the project and download the necessary dependencies
sequenceDiagram
autonumber
Client->>+OMS: NewOrderSingle
Note right of Client: via Chronicle Queue, persisted
Note right of OMS: processes event
OMS->>-Client: ExecutionReport
Note right of Client: via Chronicle Queue, persisted
To run the project, you need to compile the project and run the main classes for different features:
-
OrderAdderMain
: This class simulates the creation of new orders. -
OrderViewerMain
: This class simulates the viewing of created orders. -
OrderBenchmarkMain
: This class benchmarks round trip time of writing aNewOrderSingle
a queue, have theOMSImpl
produce anExecutionReport
and read that report. -
OMSImpl
: This class handles the processing of the orders, including cancelling orders.
You can run these classes directly from your IDE, or you can use mvn compile exec:exec@id
on the command line to run the compiled classes.
We appreciate any contributions to the Order Processor Demo. If you find any bugs or issues, please open an issue in the repository. If you want to contribute to the code, please fork the repository, make your changes, and open a pull request.