SlideShare une entreprise Scribd logo
1  sur  24
Add a picture here
Event-driven
architecture
Comment Deezer passe en mode réactif
Add a picture here
événement
“Tout ce qui se produit, arrive ou apparaît”
Larousse
Qui est intéressé ?
● Artistes / Labels
● Equipe Produit
● Data scientists
Hey! Il écoute
un titre des
Black Keys
Un peu d’histoire
Syslog
Syslog - avantages
+ Asynchrone
+ Facile à utiliser par les équipes Data
+ Facile à utiliser par les développeurs
Syslog - limitations
- Pas de temps réel pour la Data
- Pas de contrat d’interface
- Workers limités à un serveur
- Pas de monitoring sur RTLog
- Confusion entre logs et événements
Ce qu’on a mis en place
Bus d’événement d’entreprise
Event bus
Robuste Scalable Performant
Anatomie d’un message
✉️
Privé
Public
Producer ==
consumer
Producer Consumer
Json
schema
ConsumerConsumers
Bus d’événements - avantages
+ Asynchrone
+ Facile à utiliser par les équipes Data même en streaming
+ Facile à utiliser par les développeurs grâce à des librairies
+ Monitoring out-of-the-box
+ Outillage disponible pour valider les messages
Bus d’événements - attention
- Plus de travail pour les développeurs
- Consommateurs en PHP… ce fut épique !
cf. “Kafka - Consume topics in PHP from nightmare to performance” - talk
de Loïc D au SFPot de Février 2019
https://fr.slideshare.net/gdflkgjdfklgj/deezer-consume-topics-in-php-from-nightmare-to-performance
Focus sur PHP
- Php-rdkafka → https://github.com/arnaud-lb/php-rdkafka
- Librdkafka → https://github.com/edenhill/librdkafka
- Capable de consommer
1.3 milliard
event / jour
Pic de 30K / s 80 ms
Et pour la suite ?
Vers l’event sourcing...
Key takeways
L’architecture
orientée
événement
apporte un
découplage des
services et
réduit la latence
L’importance
du contrat
d’interface dans
les événements
Outillage,
outillage,
outillage
Thank you
Vincent Lepot
Lead web architect
@neozibok

Contenu connexe

Similaire à Event driven architecture : comment Deezer passe en mode réactif

Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Marius Zaharia
 
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...☁️Seyfallah Tagrerout☁ [MVP]
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataMicrosoft
 
Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Vincent Lepot
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOTCellenza
 
Infrastructure - Monitoring - Cacti
Infrastructure - Monitoring - CactiInfrastructure - Monitoring - Cacti
Infrastructure - Monitoring - CactiFrédéric FAURE
 
Trailhead DX 19 Global Gathering
Trailhead DX 19 Global GatheringTrailhead DX 19 Global Gathering
Trailhead DX 19 Global GatheringThierry TROUIN ☁
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Microsoft Décideurs IT
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Microsoft Technet France
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...Adrien Clerbois
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webAcquia
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piadelegue
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Cyril Reinhard
 
Elastic Morocco user group meetup June
Elastic Morocco user group meetup JuneElastic Morocco user group meetup June
Elastic Morocco user group meetup JuneAnna Ossowski
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23Frederic Leger
 
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 [devops REX 2016] Les impacts techniques et organisationnels liés à devops [devops REX 2016] Les impacts techniques et organisationnels liés à devops
[devops REX 2016] Les impacts techniques et organisationnels liés à devopsdevops REX
 

Similaire à Event driven architecture : comment Deezer passe en mode réactif (20)

Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
 
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
 
Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOT
 
Infrastructure - Monitoring - Cacti
Infrastructure - Monitoring - CactiInfrastructure - Monitoring - Cacti
Infrastructure - Monitoring - Cacti
 
Trailhead DX 19 Global Gathering
Trailhead DX 19 Global GatheringTrailhead DX 19 Global Gathering
Trailhead DX 19 Global Gathering
 
Fully Automated Nagios, Solutions Linux 2009
Fully Automated Nagios, Solutions Linux 2009Fully Automated Nagios, Solutions Linux 2009
Fully Automated Nagios, Solutions Linux 2009
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Nouveaux apis
Nouveaux apisNouveaux apis
Nouveaux apis
 
Silverlight 4
Silverlight 4Silverlight 4
Silverlight 4
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"
 
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
DevOps et ALM : Application Lifecycle Management: Continuous Delivery avec Vi...
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry pi
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
Elastic Morocco user group meetup June
Elastic Morocco user group meetup JuneElastic Morocco user group meetup June
Elastic Morocco user group meetup June
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
 
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 [devops REX 2016] Les impacts techniques et organisationnels liés à devops [devops REX 2016] Les impacts techniques et organisationnels liés à devops
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 

Dernier

firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 

Dernier (20)

firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 

Event driven architecture : comment Deezer passe en mode réactif

Notes de l'éditeur

  1. Pour vous c’est quoi un événement. Demandons à Larousse. (clic) Dans un SI on pourrait dire que ce sont les interactions avec l’extérieur, les actions internes, les réactions à ces actions.
  2. Prenons un exemple d’un événement : un utilisateur d’un site musical écoute de la musique(clic) Qui est intéressé par cet événement ? Pas l’utilisateur lui-même mais (clic) Les artistes et leurs labels pour les royalties qu’ils doivent recevoir (clic) L’équipe produit pour connaître les usages des utilisateurs grâce au contexte (clic) Les data scientists pour pouvoir travailler sur la recommandation
  3. Dans une approche traditionnelle, on ferait les actions à réception de l’appel API Mais ceci serait : Coûteux en latence d’un point de vue utilisateur Risqué en cas d’indispo d’un sous système
  4. L’idée de l’architecture orientée événement (EDA) est de dire ce qu’il se passe et de laisser les intéressés venir se servir, réagir. On n’attend plus que tout le monde soit servi Découplé
  5. Et des événements dans un SI, il y en a plein ! Login, logout, inscription, souscription, mise en favoris, nouvel album... En y réfléchissant 2 secondes, quelque soit le business, vous en avez déjà plein en tête.
  6. Quelque part on modélise ce qui se passe dans la nature. Nous, êtres vivants, réagissons à des stimuli. Son, lumière, contacts physiques, odeurs,... Et nous réagissons tous différemment. C’est pareil dans un SI. Chaque service, chaque application va réagir à sa manière à certains événéments. Par exemple : takedown. Site doit invalider son cache, paiement s’en fout
  7. Pourquoi je dis ça ? → Deezer il y a quelques années c’était ça : le fameux monolithe. Vous savez sans doute déjà que ça a des avantages mais surtout des inconvénients (pb de code spaghetti, responsabilités non claires, difficultés à mettre en production et à maintenir…)
  8. Donc comme beaucoup, nous avons commencé à exploser ce monolithe en plusieurs morceaux qui interagissent tous ensemble pour fournir le service et nous aider à le faire évoluer plus vite, de manière plus aisée. (Je ne vous fais pas l’article sur l’approche SOA/microservices…) Et c’est là où l’approche par événement prend tout son sens (clic) : plutôt que de faire des appels HTTP partout, certains traitements sont faits de manière asynchrones par de l’écoute d’événements.
  9. Avant de vous expliquer ce qu’on a fait, revenons sur ce qu’on faisait avant. Car on avait déjà des traitements asynchrones avant (quand même)
  10. Et on utilisait syslog (plus précisement rsyslog) pour transporter de l’information La data vient chercher les logs de J-1 (ou de H-1) pour import Pour l’asynchrone, RTLog (genre de tail -f) envoie les lignes à des workers
  11. Ce qu’il y a de bien dans cette solution Asynchrone Ce sont des fichiers plats à importer côté data Pour les développeurs, ce sont les mêmes outils que pour du log, c’est natif dans PHP
  12. Par contre, on se retrouve limités sur : Le manque de temps de réel (pas de stream possible) Le manque de contrat d’interface (pas lié à la stack technique) L’absence de monitoring sur RTLog (on se repose sur le râlomètre pour détecter les outages) La pédagogie à mettre en place pour faire la différence entre log applicatif et événement métier
  13. On envoie nos messages dans un bus d’événement qui est en fait en broker de messages et ces messages peuvent être consommés par n’importe quelle application, quelque soit son langage (tant qu’elle sait se connecter au broker) Pour la partie Data, on utilise Spark streaming pour le temps réel
  14. Notre bus d’événements est basé sur Kafka Nous avons fait ce choix car des milliards d’événements par jour (4 milliards environ). scalable, … Par contre, ce serait tout aussi valable avec d’autres brokers de messages comme RabbitMQ, ActiveMQ ou NSQ. Peu importe
  15. On distingue 2 cas d’usage : Privé : une application consomme ses propres messages. Elle est libre du format, du versionning, de casser de la compatibilité. Les autres applications n’ont pas à les utiliser (si elles le font, ce sera à leurs dépends) Public : un application émet des messages pour d’autres applications consommatrices => Alors (clic) elles ont un contrat d’interface à mettre en place Le contrat est un JSON schema qui doit répondre à une norme définie pour Deezer, et peut contenir des notions d’acteurs et de contexte.
  16. On a déjà dans notre migration commencé à implémenter un pattern CQRS. L’idée est d’ajouter une notion d’event source pour avoir les avantages de ce genre de solution: Historisation (pour l’audit notamment) Une capacité de replay en cas de problème En ajoutant une dose d’asynchronisme (là où ce sera possible évidemment)