SlideShare uma empresa Scribd logo
1 de 45
Bogdan Sucaciu
Staff Engineer@ 8x8 |Pluralsight Author
Demystifying Event-Driven
Architectures with Apache Kafka
bsucaciu.com
@bsucaciu
linkedin.com/bogdan-sucaciu
The Monolith
A lot of code
goes in here
The Problem
GOOD
BAD
Scalability
The Monolith
SOA
Microservices
Challenge
GOOD
BAD
Scalability
Challenge -> Solution
GOOD
BAD
Scalability
Challenge -> Solution -> New Challenge
GOOD
BAD
Data Access
Scalability
Microservices
Coupling
Distributed
Transactions
Timeouts
Dependency Management
DataOwnership
Event-Driven Architecture
Software architecture paradigm promoting production, consumption of,
and reactionof events
- Wikipedia
EDA
EDA
REST
Queue
REST
EDA
EDA
Producer
Consumer
Event Stream
Event Stream
Event Stream
Consumer
Producer /
Consumer
Producer /
Consumer
EDA
Producer
Consumer
Event Stream
Event Stream
Event Stream
Consumer
Producer /
Consumer
Producer /
Consumer
EDA
Producer
Consumer
Event Stream
Event Stream
Event Stream
Consumer
Producer /
Consumer
Producer /
Consumer
EDA
Event Stream
Logs
Topics
Queues
WebSockets
Reactive APIs
Persisted Events
Reactive Events
EDA with Apache Kafka
KafkaBroker Inversion ofControl
Fan-out
1 P-type/ EventStream
Producersdon’tknow
Consumers
Topics
Challenge
GOOD
BAD
Data Access
Scalability
Challenge -> Solution
GOOD
BAD
Data Access
Scalability
Challenge -> Solution -> New Challenge
GOOD
BAD
Data Access Consistency
Scalability
The key to building successful EDA is understanding and accepting
EventualConsistency
Past Present Future
Query Command
Event
A B
Message
A B
A ? A B
A ?B
A B
Event Notification
Event Producer Event Consumer
privatestaticString TOPIC = "event-notification";
…
Propertiesprops=new Properties();
props.put(BOOTSTRAP_SERVERS_CONFIG,"broker:9092");
props.put(KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String,String> producer= new KafkaProducer<>(props);
ProducerRecord<String,String> producerRecord= new ProducerRecord<>(TOPIC,key, value);
producer.send(producerRecord);
privatestaticStringTOPIC= "event-notification";
…
Propertiesprops=new Properties();
props.put(GROUP_ID_CONFIG,"event.consumer");
props.put(BOOTSTRAP_SERVERS_CONFIG,"broker:9092");
props.put(KEY_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class);
props.put(VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
KafkaConsumer<String,String> consumer= new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList(TOPIC));
while(true){
ConsumerRecords<String,String> records= consumer.poll(ofMillis(100));
records.forEach(record-> processRecord(record));
}
Producer Consumer 3
Consumer 2
Consumer 1
Producer Consumer 3
Consumer 2
Consumer 1
Event-Carried
State Transfer
Address Changed Event
P
Kafka Broker
C1
C2
C3
Only newaddress?
Old & new address?
Userinfo?
?
Address Changed Event
P
Only newaddress
C1
C2
C3
Kafka Broker
Address Changed Event
P
C1
C2
C3
Kafka Broker
Address Changed Event
P
C1
C2
C3
Kafka Broker
Address Changed Event
P
Tax
C2
C3
Kafka Broker
X
Avoid querying back the
source system whenusing events!
Avoid querying back the
source system whenusing events!
Events stillmake sense
after 10 years in a datalake!
Distributed Source of Truth
Event Sourcing
Event Sourcing
Initial Amount 0
Add 500
Add 200
Subtract 300
0
Current Amount
Event Sourcing
Initial Amount 0
Add 500
Add 200
Subtract 300
Current Amount 500
Event Sourcing
Initial Amount 0
Add 500
Add 200
Subtract 300
Current Amount 700
Event Sourcing
Initial Amount 0
Add 500
Add 200
Subtract 300
Current Amount 400
GIT
Event Sourcing
EventStream
C2
C1 C3
Game on
bsucaciu.com
@bsucaciu
linkedin.com/bogdan-sucaciu

Mais conteúdo relacionado

Mais procurados

Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...
Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...
Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...FactoVia
 
IBM Bluemix Paris metup #23 - 20170425 -
IBM Bluemix Paris metup #23 - 20170425 - IBM Bluemix Paris metup #23 - 20170425 -
IBM Bluemix Paris metup #23 - 20170425 - IBM France Lab
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...Adrien Blind
 
L'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerpriseL'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerpriseCisco Canada
 
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projectsMicrosoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projectsFactoVia
 
Générez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEA
Générez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEAGénérez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEA
Générez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEAObeo
 
Pres azure paas tdf -rex-hager-vincent thavonekham-regional director-azug f...
Pres azure   paas tdf -rex-hager-vincent thavonekham-regional director-azug f...Pres azure   paas tdf -rex-hager-vincent thavonekham-regional director-azug f...
Pres azure paas tdf -rex-hager-vincent thavonekham-regional director-azug f...FactoVia
 
Tenedis: Déployer un socle de Monitoring Unifié
Tenedis: Déployer un socle de Monitoring UnifiéTenedis: Déployer un socle de Monitoring Unifié
Tenedis: Déployer un socle de Monitoring UnifiéElasticsearch
 
IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116
IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116
IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116IBM France Lab
 
Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...
Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...
Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...Tactika inc.
 
IBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & Sécurité
IBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & SécuritéIBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & Sécurité
IBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & SécuritéIBM France Lab
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesOCTO Technology Suisse
 
IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015IBM France Lab
 
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016IBM France Lab
 
DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!Adrien Blind
 
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2IBM France Lab
 
Kasten K10 Data Management in Kubernetes
Kasten K10 Data Management in KubernetesKasten K10 Data Management in Kubernetes
Kasten K10 Data Management in KubernetesSarra Sassi
 
Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...
Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...
Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...Karim Gmir
 

Mais procurados (20)

Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...
Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...
Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retou...
 
IBM Bluemix Paris metup #23 - 20170425 -
IBM Bluemix Paris metup #23 - 20170425 - IBM Bluemix Paris metup #23 - 20170425 -
IBM Bluemix Paris metup #23 - 20170425 -
 
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
DevOps à l'échelle: ce que l'on a fait, ce que l'on a appris chez Societe Gen...
 
L'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerpriseL'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerprise
 
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projectsMicrosoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
 
Générez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEA
Générez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEAGénérez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEA
Générez automatiquement vos diagrammes d'architecture | Webinaire Obeo SmartEA
 
Pres azure paas tdf -rex-hager-vincent thavonekham-regional director-azug f...
Pres azure   paas tdf -rex-hager-vincent thavonekham-regional director-azug f...Pres azure   paas tdf -rex-hager-vincent thavonekham-regional director-azug f...
Pres azure paas tdf -rex-hager-vincent thavonekham-regional director-azug f...
 
Tenedis: Déployer un socle de Monitoring Unifié
Tenedis: Déployer un socle de Monitoring UnifiéTenedis: Déployer un socle de Monitoring Unifié
Tenedis: Déployer un socle de Monitoring Unifié
 
IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116
IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116
IBM Bluemix Nice meetup - Data & Analytics - CEEINCA - 20161116
 
Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...
Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...
Introduction à la formation CERTIFICATE OF CLOUD SECURITY KNOWLEDGE / CCSK de...
 
Dev ops Monitoring
Dev ops   MonitoringDev ops   Monitoring
Dev ops Monitoring
 
IBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & Sécurité
IBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & SécuritéIBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & Sécurité
IBM Bluemix Paris Meetup #21-20170131 Meetup @Ingima - Iot & Sécurité
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiques
 
IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 -Ecole 42 - 9 décembre 2015
 
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
IBM Paris Bluemix Meetup #13 - Epitech - 9 mars 2016
 
DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!
 
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
 
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
Kasten K10 Data Management in Kubernetes
Kasten K10 Data Management in KubernetesKasten K10 Data Management in Kubernetes
Kasten K10 Data Management in Kubernetes
 
Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...
Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...
Benchmark des solutions IoT et intégration d'une plateforme à un progiciel de...
 

Semelhante a Démystifier les architectures orientées événements avec Apache Kafka

De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
Présentation Green Code Lab - Olivier Philippot
Présentation Green Code Lab - Olivier PhilippotPrésentation Green Code Lab - Olivier Philippot
Présentation Green Code Lab - Olivier PhilippotMartin Neys
 
Architectures lambda - Techdays camps 2015
Architectures lambda - Techdays camps 2015 Architectures lambda - Techdays camps 2015
Architectures lambda - Techdays camps 2015 Georges Damien
 
#SnowCamp2020 - DATAOPS n’est pas que DEVOPS appliqué aux projets DATA
#SnowCamp2020 -  DATAOPS n’est pas que DEVOPS appliqué aux projets DATA#SnowCamp2020 -  DATAOPS n’est pas que DEVOPS appliqué aux projets DATA
#SnowCamp2020 - DATAOPS n’est pas que DEVOPS appliqué aux projets DATAFrédéric Petit
 
2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...
2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...
2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...Club Alliances
 
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...Soufiane KALLIDA
 
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hecPpt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hecYves LE CLEACH
 
Session découverte de la Data Virtualization
Session découverte de la Data VirtualizationSession découverte de la Data Virtualization
Session découverte de la Data VirtualizationDenodo
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!Alexandre Touret
 
2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...
2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...
2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...Club Cloud des Partenaires
 
Petit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projetsPetit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projetsAdrien Blind
 
Petit-déjeuner OCTO - L'Infra au service de ses projets
Petit-déjeuner OCTO - L'Infra au service de ses projetsPetit-déjeuner OCTO - L'Infra au service de ses projets
Petit-déjeuner OCTO - L'Infra au service de ses projetsOCTO Technology
 
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Saâd Zerhouni
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaJulien Chable
 
Metrixware Rencontre Utilisateurs Projet Cobos
Metrixware Rencontre Utilisateurs Projet CobosMetrixware Rencontre Utilisateurs Projet Cobos
Metrixware Rencontre Utilisateurs Projet Cobosmetrixware
 

Semelhante a Démystifier les architectures orientées événements avec Apache Kafka (20)

De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
Présentation Green Code Lab - Olivier Philippot
Présentation Green Code Lab - Olivier PhilippotPrésentation Green Code Lab - Olivier Philippot
Présentation Green Code Lab - Olivier Philippot
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Architectures lambda - Techdays camps 2015
Architectures lambda - Techdays camps 2015 Architectures lambda - Techdays camps 2015
Architectures lambda - Techdays camps 2015
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
#SnowCamp2020 - DATAOPS n’est pas que DEVOPS appliqué aux projets DATA
#SnowCamp2020 -  DATAOPS n’est pas que DEVOPS appliqué aux projets DATA#SnowCamp2020 -  DATAOPS n’est pas que DEVOPS appliqué aux projets DATA
#SnowCamp2020 - DATAOPS n’est pas que DEVOPS appliqué aux projets DATA
 
BlockIN
BlockINBlockIN
BlockIN
 
2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...
2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...
2011.06.30. Enjeux et opportunités Business du Cloud - les Rencontres Nationa...
 
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
Support soutenance PFE 11 juillet 2016 - EMSI - SIEMENS - Université de Borde...
 
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hecPpt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hec
 
Session découverte de la Data Virtualization
Session découverte de la Data VirtualizationSession découverte de la Data Virtualization
Session découverte de la Data Virtualization
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
 
2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...
2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...
2012.11.20 - Editeurs - RV des Experts du Club Cloud des Partenaires - Partne...
 
RFID
RFIDRFID
RFID
 
Petit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projetsPetit déjeuner Octo - L'infra au service de ses projets
Petit déjeuner Octo - L'infra au service de ses projets
 
Petit-déjeuner OCTO - L'Infra au service de ses projets
Petit-déjeuner OCTO - L'Infra au service de ses projetsPetit-déjeuner OCTO - L'Infra au service de ses projets
Petit-déjeuner OCTO - L'Infra au service de ses projets
 
Objectif fluid&lt;fab />
Objectif fluid&lt;fab />Objectif fluid&lt;fab />
Objectif fluid&lt;fab />
 
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
Metrixware Rencontre Utilisateurs Projet Cobos
Metrixware Rencontre Utilisateurs Projet CobosMetrixware Rencontre Utilisateurs Projet Cobos
Metrixware Rencontre Utilisateurs Projet Cobos
 

Mais de Open Source Experience

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésOpen Source Experience
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousseOpen Source Experience
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Open Source Experience
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresOpen Source Experience
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationOpen Source Experience
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsOpen Source Experience
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Open Source Experience
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteOpen Source Experience
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieOpen Source Experience
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresOpen Source Experience
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceOpen Source Experience
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesOpen Source Experience
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceOpen Source Experience
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceOpen Source Experience
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...Open Source Experience
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementOpen Source Experience
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?Open Source Experience
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secretsOpen Source Experience
 
Badge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CIIBadge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CIIOpen Source Experience
 

Mais de Open Source Experience (20)

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivités
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousse
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libres
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'information
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverte
 
Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsie
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libres
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open source
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenaces
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open source
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open source
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitement
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secrets
 
Badge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CIIBadge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CII
 

Démystifier les architectures orientées événements avec Apache Kafka

Notas do Editor

  1. Introduction: name, company Myth: Event-driven architectures are all about being real-time / ETL There are specific use cases for real-time data such as fraud detection ( atm example ), sensors reading ( smoke alarms ) EDA solves a different kind of problems, something that is much more powerfull Theory is good, practice is even better: Apache Kafka Start with the beginning
  2. I think that everyone knows about monoliths It’s a simple but powerfull pattern All code is encapsulated into a single running process Usually, a database is attached to it ( hundreds of tables ) Monoliths are great but, there is a but
  3. All problems condenses -> scalability Application scalability: the app must server more and more requests, increase instance Team scalability: 20-30 teams working on the same code repository; a lot time wasted due to communication
  4. - Some very smart persons come up with the idea of splitting up the monolith
  5. Service oriented architecture Code is split into multiple modules It was hard to properly define the borders of each service
  6. Domain-driven microservices Domain -> sub domains -> bounded contexts -> aggregates -> cool stuff Each microservice should have ownership over data Different databases: relational, nosql: document-based, key value stores
  7. Start monolith -> solves
  8. In software engineering we don’t have good or right, bad or wrong, we have tradeoffs. New challenge
  9. It is really hard to access the data you need
  10. Data is encapsulated by each microservice One customer makes a request -> cascade of other requests to aggregate data Challenges Coupling Event-driven architectures to the rescue Haven’t told what event-driven architectures are - change of paradigm from data to events Microservices are typically data driven: each microservice encapsulates data Events on the other hand promote a concept called data liberation
  11. events is the centerpiece definition
  12. - simplify
  13. -make it unidirectional
  14. -transpose it event-driven
  15. New concept: event stream Event stream -> middleware to facilitate transport of events 2 types of applications: producers and consumers
  16. Create and send events
  17. Retrieve and process events
  18. Protocols and tools Anything that you can asynchronously subcribe to Examples Reactive events: once consumed, they can never be brought back; Persistsed events: if something fails during consuming process, can replay
  19. Event streams as topics in Kafka 4 Key observations Inversion of control -> spring example; lis a good thing; REST-based producer pushes data, event-driven consumers has to retrieve it; producer only pushes it to the event stream Fan out -> multiple consumers can retrieve events from the same event stream; data is accesible; it is there to be taken 1 producer type per event stream -> difference between event stream and a topic; a topic can persist anything; data structure must be in place Producers dont know consumers: from application perspective; architecture perspective everything is well known
  20. Event-driven Architectures solves the data access problem
  21. Software engineering is about tradeoffs
  22. Syncronous APIs -> we got used to Strong Conistency
  23. Microservices have strong consistency Not all use cases can be made event-driven Typical system is a mix between event-driven and synchronous APIs Talk later about why eventual consistency matters What is an event?
  24. A message is just data exchanged between 2 services Data must have a structure A message may have differnet forms Patterns of EDA 2 types of events
  25. Action that has happened or has been triggered It must be a meaningfull action to the busines Cusomer Logins to our mobile application -> customer takes a photo Talk about e-commerce example; suggestions carousel Great example -> No response
  26. Very similar; Difference nuance compared to event notification
  27. It introduces coupling Let me say that again
  28. Data is scattered across multiple services Workaround: Copying parts of data from one database to another Challenges: -how to keep it in sync? How to make sure we have the latest versions of the data? Distributed systems needs another
  29. Most powerfull pattern, but also very demanding It all comes down to an event log
  30. Event log
  31. State is called materialized view Eventual consistency -> not all consumers retrieve the data at the same time Can always discard the entire database and rebuild it
  32. Barely scratched the surface: there are a lot of things to learn Change Data Capture, streaming pattern Thank you for joining this essions Feel free to get in touch with me