{"action":"created","issue":{"url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/issues/159","repository_url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides","labels_url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/issues/159/labels{/name}","comments_url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/issues/159/comments","events_url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/issues/159/events","html_url":"https://github.com/voyages-sncf-technologies/hesperides/pull/159","id":310057295,"number":159,"title":"Feature/indexation replay","user":{"login":"Sylvain-maillard","id":4624588,"avatar_url":"https://avatars1.githubusercontent.com/u/4624588?v=4","gravatar_id":"","url":"https://api.github.com/users/Sylvain-maillard","html_url":"https://github.com/Sylvain-maillard","followers_url":"https://api.github.com/users/Sylvain-maillard/followers","following_url":"https://api.github.com/users/Sylvain-maillard/following{/other_user}","gists_url":"https://api.github.com/users/Sylvain-maillard/gists{/gist_id}","starred_url":"https://api.github.com/users/Sylvain-maillard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sylvain-maillard/subscriptions","organizations_url":"https://api.github.com/users/Sylvain-maillard/orgs","repos_url":"https://api.github.com/users/Sylvain-maillard/repos","events_url":"https://api.github.com/users/Sylvain-maillard/events{/privacy}","received_events_url":"https://api.github.com/users/Sylvain-maillard/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-03-30T12:44:20Z","updated_at":"2018-04-06T09:00:49Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/pulls/159","html_url":"https://github.com/voyages-sncf-technologies/hesperides/pull/159","diff_url":"https://github.com/voyages-sncf-technologies/hesperides/pull/159.diff","patch_url":"https://github.com/voyages-sncf-technologies/hesperides/pull/159.patch"},"body":"## Overview\r\n**TL;DR**\r\nLe but de cette PR est de permettre l'alimentation des vues à partir de l'event store legacy sous Redis.\r\nPour cela, on rejoue tous les events (il y en a ~500 000 dans le store de la recette), pour consolider par exemple une base ELS from scratch. \r\n\r\nLe problème de lister les events est qu'ils ne sont pas indexés: en effet, chaque set d'event est indépendant.\r\n\r\nOn doit donc créer un index. \r\n\r\nCeci est fait dans une clé spéciale qui contient la liste de tous les noms d'events au format \"aggregate_id:index\" (où \"index\" est le numéro de l'event dans la clé de l'aggregat).\r\n\r\nRelated Issues: #124 \r\n\r\n### Next Steps\r\n\r\n- [x] Nettoyer le code\r\n- [x] Nettoyer les logs\r\n- [x] Ajouter des métriques (le replay peut prendre + de 10 minutes à mon avis) => j'ai ajouté un module \"admin\" qui utilise spring boot admin pour visualiser les tests, mais c'est facultatif. on peut toujours consulter les métriques sur http://localhost:8080/rest/manage/metrics\r\n- [ ] Brancher un listener d'event pour alimenter l'index quand on créer de nouveau events (que ce soit le legacy ou la nouvelle appli, utiliser le mécanisme pub/sub de redis pour ça)\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/issues/comments/379192839","html_url":"https://github.com/voyages-sncf-technologies/hesperides/pull/159#issuecomment-379192839","issue_url":"https://api.github.com/repos/voyages-sncf-technologies/hesperides/issues/159","id":379192839,"user":{"login":"victorsalaun","id":3106586,"avatar_url":"https://avatars1.githubusercontent.com/u/3106586?v=4","gravatar_id":"","url":"https://api.github.com/users/victorsalaun","html_url":"https://github.com/victorsalaun","followers_url":"https://api.github.com/users/victorsalaun/followers","following_url":"https://api.github.com/users/victorsalaun/following{/other_user}","gists_url":"https://api.github.com/users/victorsalaun/gists{/gist_id}","starred_url":"https://api.github.com/users/victorsalaun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/victorsalaun/subscriptions","organizations_url":"https://api.github.com/users/victorsalaun/orgs","repos_url":"https://api.github.com/users/victorsalaun/repos","events_url":"https://api.github.com/users/victorsalaun/events{/privacy}","received_events_url":"https://api.github.com/users/victorsalaun/received_events","type":"User","site_admin":false},"created_at":"2018-04-06T09:00:49Z","updated_at":"2018-04-06T09:00:49Z","author_association":"MEMBER","body":"Je viens de récupérer le code et j'ai observé quelques bizarreries.\r\nLorsque je créer un module j'ai des comportements différents:\r\n- soit le module est créé directement sans problème et j'ai bien un json de retour avec le contenu du module créé\r\n- soit ça me dit qu'il n'arrive pas à récupérer les infos du module. Je dois faire une recherche (ou attendre) pour que le module soit correctement indéxé\r\n\r\nSinon il y a un peu trop de logs sur l'eventstore "}}
{"actor":{"display_login":"victorsalaun"}}