StreamThoughts
coming soon

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

Vous apprendrez les différentes architectures orientées événements, leurs caractéristiques et leurs bénéfices. Vous apprendrez à implémenter différents patterns d'intégration de données et de communication inter-applicatifs. Vous apprendrez à modéliser des événements ainsi qu'un système événementiel. Vous discuterez aussi des 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

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

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”

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

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

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

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

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

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

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”

10 ) Matérialiser des états (States)

Les motivations
Les différents patterns (Externe, Interne, Global, Shared)
Consistance des traitements

11 ) Streaming SQL Databases

Qu’est ce qu’une base de données de type Streaming ?
Les différentes solutions
Confluent ksqlDB
Materialize

12 ) Modéliser un système événementiel

Les différentes approches
L’approche Event Modeling

13 ) Standards et spécifications

Traceability Open-tracing
CloudEvents (CNCF)
ASyncAPI