StreamThoughts
coming soon

Event-Driven and Streaming Architectures

Evolving to an event streaming architecture: The patterns and strategies to liberate your data

Price : 1850€ H.T. - per attendee

For more information about this training course, please free to contact :
training@streamthoughts.io

Description

During this instructor-led three-day hands-on you will learn the different patterns and strategies needed to implement a modern streaming event-driven architecture.

Course Objectives

This course enables participants to acquire the following skills:

  • Understand the different event-driven architectures.
  • Understanding the characteristics and benefits of event-driven architectures.
  • Implementing different data integration and inter-application communication patterns.
  • Modeling events and an event system.
  • Understand and use the different data streaming solutions.

    Pedagogy

    60% theory, 40% practice

    Who Should Attend ?

    This workshop is designed for Application Developers, Architects and Data Engineers.

    Course Duration

    3 Days

    Course Prerequisites

    Participants should be familiar with Java development. No previous knowledge of Apache Kafka or Apache Pulsar is required.

    Course Content

    Module 1: Introduction to Event-driven Architectures

    • Event-first Application, The motivations
    • Event-driven Architectures
    • Event-driven, Microservices
    • Event-driven, Streaming applications
    • The main characteristics
    • Benefits and disadvantages
    • The concepts of Microservices

    Module 2: The fundamentals of an Event-driven Architecture

    • The concept of Event Streams
    • Event-driven microservices
    • Event types and Event structures
    • The principle of “Single Writer”

    Module 3: Event Brokers

    • The different models: queuing and Publish/Subscribe
    • Introduction to Apache Kafka
    • Introduction to Apache Pulsar
    • Comparison of the two solutions

    Module 4: Data schema management

    • The notion of “Event-driven Contract”
    • The event formats (Avro, Protobuf)
    • Strategies to evolve schemas
    • Modeling an Event, The best practices

    Module 5: Integration patterns

    • Building a migration strategy: Unidirectional Event-driven Architecture
    • Data sourcing or Change Data Capture
    • The “Query-based” pattern
    • The “Log-based” pattern
    • Limitations: Data consistency and schema dependencies
    • Implementation of the Anti-Corruption Layer pattern
    • Implementation of the Outbox Tables pattern
    • The data consumption
    • Introduction to Debezium
    • The Frameworks Connect (Kafka and Pulsar)
    • Impact on the organization: Dependencies and team responsibilities

    Module 6: Event-driven, Streaming services

    • Partitioned Event Streams
    • Consumer Groups
    • Assignment strategies and collocation of data
    • Co-location of processing: Shuffling vs Re-partitioning
    • Frameworks: Flink & Kafka Streams

    Module 7: Event-driven, Microservices

    • Communication patterns
    • Interaction mechanisms
    • Event Notification
    • Event Carried State Transfer
    • Event Chain
    • Synchronous commands
    • The Event-sourcing model
    • What is Event-Sourcing?
    • Event Store: Concepts and characteristics
    • Command Query Responsibility Segregation (CQRS)
    • The challenges

    Module 8: Implementing Event-driven workflows

    • Patterns to build processing lines
    • Choreography
    • Orchestration
    • Distributed transactions
    • Compensation mechanisms

    Module 9: Event reprocessing and deterministic behavior

    • The motivations for data reprocessing
    • Idempotence and Processing Semantics
    • The notion of time in an event stream
    • How to manage retroactive event ?
    • The challenges
    • How to manage interactions with external systems ?
    • Understanding the impacts of Query and Command
    • Temporal Properties
    • The Gateways
    • Evolution of the source code
    • Understanding the impacts
    • Implement the pattern: Agreement Dispatcher

    Module 10: Materializing event streams

    • Motivations
    • The different patterns (External, Internal, Global, Shared)
    • Consistency

    Module 11: Streaming SQL Databases

    • What is a Streaming database ?
    • The different solutions
    • Confluent ksqlDB
    • Materialize

    Module 12: Modeling an Event System

    • The different approaches
    • The Event Modeling approach

    Module 13: Standards and Specifications

    • Traceability Open-tracing
    • CloudEvents (CNCF)
    • ASyncAPI