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:
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
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
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.