Topics
Comme indiqué dans précédemment dans le contexte du projet, nous devons utiliser Kafka pour communiquer entre nos divers microservices. La communication sur cette plateforme distribuée de diffusion d'événements se gère avec ce que l'on appelle des topics.
Afin d'assurer une bonne communication et une interropérabilité entre les services nous nous sommes mis d'accord sur des interfaces de communication.
[geolocation_created]
Lorsqu'une géolocalisation est enregistrée il faut mettre à jour le graph de proximité de manière asynchrone.
geolocation service -> geolocation_created -> geolocation service
class GeolocationCreatedDTO {
private Geolocation geolocation;
}
[user_positive]
Lorsqu'un utilisateur rentre un test positif sur l'application, le service des tests doit alerter le service de géolocalisation pour que celui-ci puisse trouver les personnes contacts.
tests service -> user_positive -> geolocation service
class UserPositiveDTO {
private String userId;
private Long timestamp;
}
[send_alert]
Lorsque le service de géolocalisation trouve des personnes contact il doit faire en sorte qu'elles soient notifiées.
geolocation service -> send_alert -> alert service
class SendAlertDTO {
private String userId;
private Long timestamp;
}