This is a very simple POC with Quarkus and QuickfixJ.
In this project, the Acceptor
represents a stock exchange
and the Initiator
represents a broker
.
They communicate each other using the Finantial Information eXchange (FIX) protocol with QuickfixJ.
In this test the storage is kept only in memory and the logs are printed on the console.
QuickfixJ allows you to put storage and logs in files or databases.
To see the FIX messages exchanged in this test you must look at the log console.
Initiator
makes a login request to Acceptor
.
They exchange heart beat messages.
The Initiator
can send a New Single Order message using one endpoint with Swagger.
The Acceptor
automatically executes the orders and respond with an Exeution Report message.
Executes automatically the orders it receives.
Listen on port 8090.
localhost:8090/swagger-ui
- GET /session-settings
- View the SessionSettings object parameters
Allows you to insert one Order.
Listen on port 8080.
localhost:8080/swagger-ui
-
GET /session-settings
- View the SessionSettings object parameters
-
POST /new-order-single
- Send and extremely simple NewOrderSingle message
Inside the root folder of the project, execute:
chmod +x ./run.sh
./run.sh
- Enter inside the
poc-fix-acceptor
folder and type:
./mvnw compile quarkus:dev -Ddebug=5006
- Enter inside the
poc-fix-initiator
folder and type:
./mvnw compile quarkus:dev
The tag separator is the SOH (start of heading) character. Unfortunately, it does not appear on the Linux console.
Oct Dec Hex Char Oct Dec Hex Char
────────────────────────────────────────────────────────────────────────
001 1 01 SOH (start of heading) 101 65 41 A
As a workaround, you can run the application and send the data to a file with the >>
terminal operator, like:
./run.sh >> ~/my_log_file