Précisions sur la gestion des données des microservices

date:25 octobre 2018

Nous avons évoqué des points sur lesquels il faut rester attentifs :

Chaque service doit être capable de fonctionner indépendamment

Cela implique que :

  • Toutes les données nécessaires au fonctionnement doivent être présentes dans un service.
  • Un service ne doit pas en interroger un autre au moment ou une demande lui est faite,
  • Les données sont actualisées au “fil de l’eau” lorsque d’autres services les rendent disponibles.

Différentes méthodes sont possibles :

  • le service responsable de la modification d’état publie un évènement dans lequel il inclut les données utiles

ou - il publie un évènement, et les services concernés font un appel pour récupérer les données qu’ils jugent utiles ou - il modifie les données dans sa base de données (répliquées automatiquement vers celles des autres services) puis

publie un évènement (ou modifie un indicateur de cohérence dans la base ?).

Il faudra vérifier que les microservices actuels permettent ce fonctionnement, en particulier le service ServerManager qui sera le “noeud central” de l’application.

Ce fonctionnement pourrait aussi permettre d’injecter un dump de la base de service,
et d’avoir ainsi un jeu de données fonctionnel lors de tests ou pendant le développement.