Mix Logstash / Elasticsearch / Events

Bonjour,

J'ai quelques interrogations sur une architecture que je souhaiterai mettre en place dans un projet.

Voici le contexte, plusieurs services métiers autonomes dans l'esprit "microservices", chacun a sa base Postgresql dédié

Nous avons besoin de rajouter une recherche poussée dans l'architecture, et l'usage d'ES nous parait pertinent.

Un bus d'évènement est également en place.

Nous aimerions que sur un évènement bien précis, un logstash par exemple, aille récupéré des données des services A et B par exemple, merge ces données dans un seul document, et l'envoi dans l'ES.

Cela vous semble-t-il faisable ?

J'ai partagé mon expérience ici: http://david.pilato.fr/blog/2015/05/09/advanced-search-for-your-legacy-application/

Je recommande de modifier la couche applicative si possible et d'envoyer les données dans elasticsearch dans la même "transaction" que celle utilisée pour sauver les données en base de données.

J'ai fait un "live coding" (en anglais).

Bonjour,

Ce genre de besoins peut être couvert par l'utilisation d'un broker de messages comme Rabbitmq ou Kafka (et toute la famille des MQ), Logstash ayant des plugins input et output pour communiquer avec la plupart d'entre eux.

Cela permet de normaliser les transactions entre vos microservices sans que l'un ne soit dépendant des modifications d'implémentations d'un autre.

Le merge peut être réalisé soit via l'update de documents indexés sur la base d'un id unique (en ciblant des champs différents), via un index temporaire ou même une queue différente sur le broker.

Merci à vous deux pour vos retours. Nous sommes tombés sur les mêmes conclusions que @abrx