Sto progettando un'app di consegna in cui un Richiedente richiede una cosa dal suo cellulare e la richiesta viene inviata a più agenti sul campo. Quando un agente accetta la richiesta, verrà assegnato al richiedente e dovrà effettuare la consegna.
Voglio alcuni suggerimenti per l'architettura di questo sistema. Sto usando lo stack .Net. Ecco alcune sfide:
1) In qualsiasi momento verranno notificati solo 5 agenti. Nel caso in cui nessuno di loro accetti la richiesta, la richiesta verrà inviata ad altri 5. Gli agenti che sono stati notificati per una particolare richiesta verranno registrati nel database. Nel caso in cui un agente accetti una richiesta, il database verrà aggiornato. Se dopo 10 secondi nessuno degli agenti accetta la richiesta, il servizio Windows invierà la richiesta ai successivi 5 agenti.
Domanda: È giusto continuare a eseguire la scansione del database con query ogni 5 secondi utilizzando un servizio Windows per verificare se la richiesta è stata accettata? Il sistema deve essere progettato per carichi pesanti.
2) Il richiedente può pianificare una richiesta.
Domanda: È giusto continuare a eseguire la scansione del database con query ogni 5 secondi per verificare se l'orario pianificato si è avvicinato?
Sto usando l'API WEB ASP.Net per ricevere informazioni dal cellulare, FCM per inviare notifiche al cellulare e windows sevice per completare le 2 attività precedenti.
Per favore consiglia un approccio, un'architettura e le tecnologie ottimali da utilizzare per ottenere questo risultato.