In order run the app you need to:
1. start the Axon Server:
a. docker run -d --name axonserver -p 8024:8024 -p 8124:8124 axoniq/axonserver
or
b. download the jar from https://download.axoniq.io/axonserver/AxonServer.zip
and run it with java -jar
2. start the app with mvn spring-boot:run from the root folder
curl -X GET "http://localhost:8080/wallet/yourWalletID" -H "accept: */*"
curl -X GET "http://localhost:8080/wallet/yourWalletID/events" -H "accept: */*"
What else needs to be done
Pagination
Logging
Security
Containerization
Load testing
The existing transaction check is a sensitive issue,as it will need another approach as the table grows. For example: implement
a caching solution: https://hazelcast.com/use-cases/jcache-provider/
Also the unique transaction id would be ideally dealt with in the calling service.
More detailed error handling
Split the Query and Command into 2 different microservices that can be scaled separately.