Il mio problema riguarda due servizi: NotificationService (dovrebbe essere usato da più di un semplice SurveyService), SurveyService.
Desidero inviare all'utente notifiche ricorrenti per chiedere la partecipazione a un sondaggio. Questi devono essere inviati in un determinato intervallo fino al raggiungimento del numero massimo di notifiche o fino a quando l'utente non ha partecipato al sondaggio.
Senza la parte ricorrente lo farei in questo modo: SurveyService invia un evento "UserAddedToSurvey" che viene elaborato dal NotificationService che in risposta notifica all'utente.
Ma con le notifiche ricorrenti devo considerare se l'utente ha partecipato e quando è stata inviata l'ultima notifica / quanti sono stati inviati riguardo questo argomento.
Se capisco che l'idea alla base dei microservizi è che non dovrebbero avere alcuna conoscenza reciproca. Ma ho bisogno di informazioni da entrambi i servizi per decidere se informare di nuovo l'utente.
La mia unica idea a riguardo sarebbe un cronjob in SurveyService che invia regolarmente un evento UserStillNotParticipatedInSurvey e consente a NotificationService di decidere se inviare o meno una notifica in base all'ultima data di notifica e al numero totale di notifiche riguardanti questo argomento.
Sarebbe una soluzione appropriata? O ci sono modi migliori / più semplici per risolvere questo problema?