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