vendredi 29 novembre 2019

Architecture design for event driven programming

Here is my problem statement and I'm stuck during architect design.

I have a project where admin can create a request, the request will go to all the engineers who are registered on our app. They will have 10 mins to opt in for the request, once 10 mins are elapsed, admin will receive one notification stating, "request round is completed, plz see the responses of engineer". Now admin can see a list of engineers who opted-in for the request. If admin selects one engineer, that engineer will be sent one notification saying "You have been selected, plz acknowledge". Engineer will have 5 mins to acknowledge and our admin will wait for his acknowledgement. If he doesn't acknowledge, admin will receive one another notificaiton stating engineer didn't acknowledge, select another. So admin will now select another engineer and same procedure will go. He will again have 5 mins to acknowledge. Once he acknowledges, process will be finished. So here once we create a flow chart, we see many events changes the status of one request. So I would like to have suggestions on what would be the approaches to design the architecture of such application? Apacke kafka, streams, rabbitmq, drools will fit anywhere in the applications?

I have thought of having 2 different spring boot projects, one for our core engine which will process the request and other is notification engine. From core engine, we will send the notification to notification engine via http/rabbitmq.

And for managing the threading of requests, I'm thinking of using executor service.

Please help with the suggestions to design a better architecture of the application.

My backend is java spring

Aucun commentaire:

Enregistrer un commentaire