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

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