coming soon
training
Event-Driven and Streaming Architectures
Évoluer vers une architecture de streaming d'événements : Les patterns et les stratégies pour libérer vos données
Prix :
1850€ H.T.
- par participant
Pour plus d'informations sur cette formation, veuillez contacter :
training@streamthoughts.io
Description
Ce cours de 3 jours apprend aux participants les différents patterns et stratégies nécessaires à la mise en oeuvre d'une architecture moderne orientées streaming d'événements.
Objectifs du cours
Ce cours permet aux participants d'acquerir les compétences suivante :
- Comprendre les différentes architectures orientées événements.
- Comprendre les caractéristiques et les bénéfices des architectures orientées événements.
- Implémenter différents patterns d'intégration de données et de communication inter-applicatifs.
- Modéliser des événements et un système événementiel.
- Connaître les différentes plateformes et des solutions de streaming de données.
Pédagogie
60% théorie, 40% pratique
Qui Peut Participer ?
Cet atelier est destiné aux Développeurs d'applications, aux Architectes et aux Data Ingénieurs.
Durée
3 Jours
Pré-requis
Les participants doivent être familiarisés avec le développement en Java. Aucune connaissance préalable d'Apache Kafka ou Apache Pulsar n'est nécessaire.
Programme de formation
Module 1 : Introduction aux Architectures Event-driven
- Event-first Application, Les motivations
- Les Architectures Event-driven
- Event-driven, Microservices
- Event-driven, Streaming applications
- Les principales caractéristiques
- Les bénéfices et les désavantages
- Les concepts des Microservices
Module 2 : Les fondamentaux d’une Architecture Event-driven
- Le concept de flux d’événements (EventStream)
- Les microservices “Event-driven”
- Les types et les structures d’événements (Event)
- Le principe de “Single Writer”
Module 3 : Les bus d’Événements (a.k.a : Brokers)
- Les différents modèles : Queue et Publish/Subscribe
- Introduction à Apache Kafka
- Introduction à Apache Pulsar
- Comparatif des deux solutions
Module 4 : Gestion des schémas de données
- La notion de “Event-driven Contract”
- Les formats d’événements (Avro, Protobuf)
- Les stratégies d’évolution des schémas
- Modéliser un Event, les bonnes pratiques
Module 5 : Les patterns d’intégration
- Construire une stratégie de migration : Unidirectional Event-driven Architecture
- La capture des données (a.k.a : Data sourcing or Change Data Capture)
- Le pattern “Query-based”
- Le pattern “Log-based”
- Les limitations : Cohérence des données et dépendances des schémas
- Implémentation du pattern Anti-Corruption Layer
- Implémentation du pattern Outbox Tables
- La consommation des données
- Introduction à la solution Debezium
- Les frameworks Connect (Kafka et Pulsar)
- Impact sur l’organisation: Les dépendances et les responsabilités des équipes
Module 6 : Event-driven, Streaming services
- Partitioned Event Streams
- Groupes de consommateurs
- Les stratégies d’assignations et la colocalisation des données
- Co-localisation des traitements : Shuffling vs Re-partitionnement
- Les frameworks : Flink & Kafka Streams
Module 7 : Event-driven, Microservices
- Les patterns de communication
- Les mécanismes d’interactions
- Event Notification
- Event Carried State Transfer
- Event Chain
- Les commandes synchrones
- Le modèle Event-sourcing
- Qu’est-ce que l’Event-Sourcing
- EventStore : Les concepts et les caractéristiques
- Command Query Responsibility Segregation (CQRS)
- Les difficultés
Module 8 : Implémenter des workflows Event-driven
- Les patterns pour construire des chaînes de traitement
- Chorégraphie
- Orchestration
- Les transactions distribuées
- Les mécanismes de compensation
Module 9 : Retraitement des événements et comportement déterministe
- Les motivations du retraitement des données
- Idempotence et Sémantiques de traitements
- La notion de temps dans un flux d’événements
- Gestion des événements rétroactifs
- Les difficultés
- Gérer les interactions avec des systèmes externes
- Comprendre les impacts des Query et Command
- Les propriétés temporelles (pattern : Temporal Property)
- Les Gateways
- Evolution du code-source
- Comprendre les impacts
- Implémenter le pattern “Agreement Dispatcher”
Module 10 : Matérialiser des états (States)
- Les motivations
- Les différents patterns (Externe, Interne, Global, Shared)
- Consistance des traitements
Module 11 : Streaming SQL Databases
- Qu’est ce qu’une base de données de type Streaming ?
- Les différentes solutions
- Confluent ksqlDB
- Materialize
Module 12 : Modéliser un système événementiel
- Les différentes approches
- L’approche Event Modeling
Module 13 : Standards et spécifications
- Traceability Open-tracing
- CloudEvents (CNCF)
- ASyncAPI