Multiplication Application:
The application is built using below architectural patterns:
- RESTful APIs using Java /SpringBoot
- Event Driven Microservices
- h2 database
- RabbitMQ for asynchronous messaging
Application Flow:
- User logs in to the application.
- a REST api call is initiated to retrieve 2 factors for the multiplication challenge.
- user enters a guess (an attempt) for the provided challenge.
- this attempt is sent as a POST request to one of the microservice (a multiplication service) to verify the guess.
- multiplication service responds to the UI (user) of the correctness of the attempt made.
- parallely, the attempt is forwarded as another REST api call (initially) and as an event (with event driven architecture) implemented later.
- the receiving microservices (game service) assigns a score and a badge for the user attempt and stores it in local DB (h2).
- UI hits a REST api endpoint exposed by game microservice to show up the LeaderBoard (as seen in the screen shot attached here).
