StreamThoughts
coming soon

Event-Driven and Streaming Architectures

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

Price : 1750 € HT - 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

You will learn about the different event-driven architectures, their main characteristics and benefits. You will learn how to implement different patterns for data integration and for inter-application communication. You will learn how to model events as well as an event driven system. You will also discuss different platforms and 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

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

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”

3) Event Brokers

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

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

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

6 ) Event-driven, Streaming services

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

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

8 ) Implementing Event-driven workflows

Patterns to build processing lines
Choreography
Orchestration
Distributed transactions
Compensation mechanisms

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 eetroactive 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

10 ) Materializing event streams

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

11 ) Streaming SQL Databases

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

12 ) Modeling an Event System

The different approaches
The Event Modeling approach

13 ) Standards and Specifications

Traceability Open-tracing
CloudEvents (CNCF)
ASyncAPI