Since a while I am looking into Axon in my spare time. Now I have the idea to develop a simple server backend based on Axon and a JavaFX based client. I have also spent time learning Spring Integration so I would like to integrate both system via JMS (ActiveMQ). It would look something like this:
<------[JMS Queue (Commands)]-------> | Single |
Multiple | | Server |
Clients | | Instance |
(JavaFx) | | (Axon) |
<------[JMS Topic (Events)]---------> | |
It this point I dont have to worry about scalability or performance or any other non-functional beceause this is a hobby project and enviroment. Therefore I didn’t see the need for multiple nodes having the domain and handling commands.
What would be the best (/not so complicated) way for me to do this?
At this point I see two options:
Use the SimpleCommandBus & SimpleEventBus and write adapters for both. Then I would have to create an adapter for the commands which could be a simple @ServiceActivator method that receives an Command object and post it on the internal bus. The same could be done for the events by creating an eventhandler that posts the same event objects on a topic. The Commands and Events could be put in a seperate module so that they can both be used by Spring Integration as Axon. This is the option I am currently considdering the most beceause it is the most clear to me. I don’t know if there are any real downsides to this approach.
I saw a post about creating a custom
EventBusTerminal. I have no idea what work has to be done for this approach and i have no experience with setting up anything other then the SimpleCommand- & SimpleEventBus.
Any advice or other option that i did not mention?
Joost van Weenen