I'm looking to push my first QuickFixJ messaging engine into production, and I would like to know the best way to do so. Bear with me.

The gist of the responsibilities is as follows:

Through QuickFixJ's socket Initiator, my FIX engine connects to a remote FIX server and listens for incoming messages. Based on some business logic, chooses to respond or not. In either case then saves part of the message to a database. Initially I had it as a simple java application.

I then made it into a Spring Boot application to take advantage of the dependency injection and orm components so now I have a Spring Boot application that basically runs my engine at startup. The reason I chose Spring is because the hibernate integration was very easy and useful -- the engine parses incoming messages into entities, and persists them through the repositories. Furthermore in the future we'd like to add a front-end for the user to be able to select some business parameters; meaning the front-end we have will have to directly interact with my engine (which has a few "hardcoded" lists representing what to handle for now). The front-end will most likely be in AngularJS, but suggestions are welcome.

But now I can't help but think there's a better way, should I decouple the engine itself from the Spring Application? And what is the best way to throw in the front-end in there?

The reason why I'm a little confused is because every Spring application I see has the same layers, meaning repositories persist data, services have the business logic, and controllers connect to the front end. But in my case I have an entire FIX engine to run (and implementation of QuickFixJ's Application interface, found here. So it's making me doubt my choice of Spring Boot, or if I'm misusing it in some way.

This will be my first full-stack application deployment.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.