comment l’architecture événementielle révolutionne la communication dans le si @meetic
DESCRIPTION
Les slides de notre talk au Meetup "Les Frenchies du web #1" présentation l'archictecture événementielle mise en place chez Meetic autour d'Apache KafkaTRANSCRIPT
![Page 1: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/1.jpg)
@MeeticTech
Comment l’architecture événementielle
révolutionne la communication dans le SI
![Page 2: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/2.jpg)
Euh… Vous êtes qui, d’abord ?
Vincent LEPOT
Architecte logiciel, R&D
@neozibok
Olivier DUFOUR
Ingénieur, IT CRM
![Page 3: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/3.jpg)
➔ Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
➔ Notre architecture historique
➔ Notre cible: tout est événement !
➔ Les points d’attention
➔ Les next steps
Comment l’architecture événementielle révolutionne la communication dans le SI
![Page 4: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/4.jpg)
(ou pourquoi vouloir passer plein de temps pour changer d’architecture
événementielle ?)
Un peu de contexte fonctionnel
![Page 5: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/5.jpg)
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
![Page 6: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/6.jpg)
Et puis un jour...
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et sinon, on pourrait avoir une
interaction avec une publication d’un
membre ?
Genre “liker” sa photo, son
annonce, ses hobbies,... ?
![Page 7: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/7.jpg)
Et puis un autre jour...
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et moi, j’aimerais bien pouvoir
améliorer les algorithmes de
recommandation entre les profils en
utilisant les interactions, les
affichages, le sens du vent… en
temps quasi réel, ce serait top !
![Page 8: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/8.jpg)
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Et si on en
profiter pour aller
même encore
plus loin ?...
![Page 9: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/9.jpg)
“Ça me fait penser un peu à un vieux jeu : The Incredible Machine” - V.Lepot
L’architecture historique
![Page 10: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/10.jpg)
![Page 11: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/11.jpg)
L'architecture historique
Site web
WS
Fetch
Decide
Execute
Opt-ins
Onlines
Mobiles
...
Event type
ID sender
ID receiver
Date/time
![Page 12: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/12.jpg)
Néanmoins, ça fonctionne très bien comme ça depuis des années !
Problèmes liés à cette solution
➔ Home made et peu maintenue : les compétences techniques ont été perdues
➔ Une souplesse… hum... limitée
➔ Ne peut traiter que des interactions entre membres
L'architecture historique
![Page 13: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/13.jpg)
Notre cible
![Page 14: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/14.jpg)
Notre cible
Visites FlashsMises en
favoriMessages
Connexions InscriptionsModifs de
profilGéoloc’
...
...
...
...
......
...
...
...
...
...
...
...
......
...
...
...
...
![Page 15: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/15.jpg)
Notre cible
Bus d’événements d’entreprise
Sites web
Tracking
Apps mobile
Notifications
Moteurs de
recherche
Graphes
Détection de
fraudeScoring et
algorithmie
![Page 17: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/17.jpg)
Notre cible - Comment ça marche, Kafka ?
Topic
Partition Partition Partition
Producteur
Consommateur
groupe A
Consommateur
groupe A
Consommateur
groupe AConsommateur
groupe B
Consommateur
groupe B
Consommateur
groupe B
![Page 18: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/18.jpg)
Les points d’attention
![Page 19: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/19.jpg)
Zookeeper fonctionne sur un principe de quorum, nécessitant un nombre
impair de votants.
Les points d’attention
✔
✘
![Page 20: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/20.jpg)
Zookeeper s’inscrit mal dans une configuration à 2 Datacenters Actif/Actif
=> On a un risque en cas de perte d’un DC ou d’un split brain
Les points d’attention
Data center 1 Data center 2
![Page 21: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/21.jpg)
Intégration avec PHP
=> Interface REST pour les producteurs
=> Scala/Akka pour les consommateurs
Les points d’attention
![Page 22: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/22.jpg)
Stabilité ? (protocole, plateforme,...)
Néanmoins:
➔ pas de plantage depuis la mise en service
➔ le cluster est toujours resté cohérent (pas de perte de données) même après avoir été “brusqué”
Les points d’attention
![Page 23: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/23.jpg)
Les next steps
![Page 24: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/24.jpg)
SI CRM
![Page 25: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/25.jpg)
SPAM = envoi en masse d’offres sur tous les canaux
CRM = envoi de la meilleur offre au meilleur moment sur le(s) meilleur(s) canal(aux)
SI CRM
![Page 26: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/26.jpg)
Architecture actuel: l'évènement déclenche un envoi sur l’ensemble des canaux
Intégration SI CRM
CRM MTA EmailSites web
&
Service client
&
Paiement
filtrer les optouts
A/B testing
Capping
BAL
CRM MTA BAL
MTA pushPush
![Page 27: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/27.jpg)
Faisons tomber
les murs
![Page 28: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/28.jpg)
architecture cible:
Intégration SI CRM
Bus
d’événements
(kafka)
Sites web
Paiement
Service client
event
event
event
CRM
Choix du canal de
communication
filtrer les optouts
A/B testing
Capping
MTA
Personnalisation
envoi du
message
Existant
A construire
![Page 29: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/29.jpg)
=> Calcul distribué temps réel (ex: Spark) ou par traitement (ex: hadoop)
➢ Segmentation & scoring (offres, packs, remises, appétence par canal)
➢ Personnalisation et amélioration des résultats de recherche et des sélections de profils
Scoring et algorithmie
![Page 30: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/30.jpg)
Indexation du moteur de recherche (ex:elasticsearch, splunk,...)
Mise à jour de la base graphe (ex: neo4j)
Détection de scam
Tracking
...
Plein d’autres applications possibles...
!
![Page 31: Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic](https://reader033.vdocuments.site/reader033/viewer/2022052602/559c7d4b1a28abac288b46bd/html5/thumbnails/31.jpg)
Merci !