Comment l’architecture événementielle 
révolutionne la communication dans le SI 
@MeeticTech
Euh… Vous êtes qui, d’abord ? 
Vincent LEPOT 
Architecte logiciel, R&D 
@neozibok 
Olivier DUFOUR 
Ingénieur, IT CRM
Comment l’architecture événementielle révolutionne la communication dans le SI 
➔ Contexte fonctionnel - Les événements ch...
Un peu de contexte fonctionnel 
(ou pourquoi vouloir passer plein de temps pour changer d’architecture 
événementielle ?)
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie 
Et puis un jour... 
Et sinon, on pourrai...
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie 
Et puis un autre jour... 
Et moi, j’aime...
Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie 
Et si on en 
profiter pour aller 
même e...
L’architecture historique 
“Ça me fait penser un peu à un vieux jeu : The Incredible Machine” - V.Lepot
L'architecture historique 
Site web 
Fetch 
Decide 
Execute 
WS 
Opt-ins 
Onlines 
Mobiles 
... 
Event type 
ID sender 
ID...
L'architecture historique 
Néanmoins, ça fonctionne très bien comme ça depuis des années ! 
Problèmes liés à cette solutio...
Notre cible
Notre cible 
Visites Flashs 
Mises en 
favori 
Messages 
... 
Connexions Inscriptions 
Modifs de 
profil 
Géoloc’ 
... 
.....
Notre cible 
Bus d’événements d’entreprise 
Sites web 
Tracking 
Apps mobile 
Notifications 
Moteurs de 
recherche 
Graphe...
Notre cible - Notre choix 
Apache Kafka 
High throughput Distributed Durable
Notre cible - Comment ça marche, Kafka ? 
Producteur 
Topic 
Partition Partition Partition 
Consommateur 
Consommateur 
Co...
Les points d’attention
Les points d’attention 
✔ 
✘ 
Zookeeper fonctionne sur un principe de quorum, nécessitant un nombre 
impair de votants.
Les points d’attention 
Data center 1 Data center 2 
Zookeeper s’inscrit mal dans une configuration à 2 Datacenters Actif/...
Intégration avec PHP 
=> Interface REST pour les producteurs 
=> Scala/Akka pour les consommateurs 
Les points d’attention
Stabilité ? (protocole, plateforme,...) 
Les points d’attention 
Néanmoins: 
➔ pas de plantage depuis la mise en service 
...
Les next steps
SI CRM
SPAM = envoi en masse d’offres sur tous les canaux 
CRM = envoi de la meilleur offre au meilleur moment sur le(s) meilleur...
Intégration SI CRM 
Architecture actuel: l'évènement déclenche un envoi sur l’ensemble des canaux 
Email 
CRM MTA Email 
S...
Faisons tomber 
les murs
Intégration SI CRM 
architecture cible: 
Bus 
d’événements 
(kafka) 
Sites web 
Paiement 
Service client 
event 
event 
ev...
Scoring et algorithmie 
=> Calcul distribué temps réel (ex: Spark) ou par traitement (ex: hadoop) 
➢ Segmentation & scorin...
Plein d’autres applications possibles... 
Indexation du moteur de recherche (ex:elasticsearch, splunk,...) 
Mise à jour de...
Merci !
Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic
Prochain SlideShare
Chargement dans…5
×

Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

1 568 vues

Publié le

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 Kafka

Publié dans : Internet
  • Soyez le premier à commenter

Comment l’architecture événementielle révolutionne la communication dans le SI @Meetic

  1. 1. Comment l’architecture événementielle révolutionne la communication dans le SI @MeeticTech
  2. 2. Euh… Vous êtes qui, d’abord ? Vincent LEPOT Architecte logiciel, R&D @neozibok Olivier DUFOUR Ingénieur, IT CRM
  3. 3. Comment l’architecture événementielle révolutionne la communication dans le SI ➔ 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
  4. 4. Un peu de contexte fonctionnel (ou pourquoi vouloir passer plein de temps pour changer d’architecture événementielle ?)
  5. 5. Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie
  6. 6. Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie Et puis un jour... Et sinon, on pourrait avoir une interaction avec une publication d’un membre ? Genre “liker” sa photo, son annonce, ses hobbies,... ?
  7. 7. Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie Et puis un autre jour... 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 !
  8. 8. Contexte fonctionnel - Les événements chez Meetic : flashs, visites et compagnie Et si on en profiter pour aller même encore plus loin ?...
  9. 9. L’architecture historique “Ça me fait penser un peu à un vieux jeu : The Incredible Machine” - V.Lepot
  10. 10. L'architecture historique Site web Fetch Decide Execute WS Opt-ins Onlines Mobiles ... Event type ID sender ID receiver Date/time
  11. 11. L'architecture historique 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
  12. 12. Notre cible
  13. 13. Notre cible Visites Flashs Mises en favori Messages ... Connexions Inscriptions Modifs de profil Géoloc’ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
  14. 14. Notre cible Bus d’événements d’entreprise Sites web Tracking Apps mobile Notifications Moteurs de recherche Graphes Détection de Scoring et fraude algorithmie
  15. 15. Notre cible - Notre choix Apache Kafka High throughput Distributed Durable
  16. 16. Notre cible - Comment ça marche, Kafka ? Producteur Topic Partition Partition Partition Consommateur Consommateur Consommateur groupe A groupe A groupe A Consommateur groupe B Consommateur groupe B Consommateur groupe B
  17. 17. Les points d’attention
  18. 18. Les points d’attention ✔ ✘ Zookeeper fonctionne sur un principe de quorum, nécessitant un nombre impair de votants.
  19. 19. Les points d’attention Data center 1 Data center 2 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
  20. 20. Intégration avec PHP => Interface REST pour les producteurs => Scala/Akka pour les consommateurs Les points d’attention
  21. 21. Stabilité ? (protocole, plateforme,...) Les points d’attention 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é”
  22. 22. Les next steps
  23. 23. SI CRM
  24. 24. 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
  25. 25. Intégration SI CRM Architecture actuel: l'évènement déclenche un envoi sur l’ensemble des canaux Email CRM MTA Email Sites web & Service client & Paiement filtrer les optouts A/B testing Capping BAL CRM MTA BAL MTA push Push
  26. 26. Faisons tomber les murs
  27. 27. Intégration SI CRM architecture cible: 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
  28. 28. Scoring et algorithmie => 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
  29. 29. Plein d’autres applications possibles... Indexation du moteur de recherche (ex:elasticsearch, splunk,...) Mise à jour de la base graphe (ex: neo4j) Détection de scam Tracking ... !
  30. 30. Merci !

×