Overview
This course covers the following learning outcomes and goals: understanding Kafka-based microservices using Akka Streams and Kafka Streams, exploring the architecture and benefits of Kafka, learning about streaming alternatives, comparing Akka and Kafka, and implementing microservices using Akka Streams and Kafka Streams.
The course teaches individual skills and tools such as Kafka partitioning, Spark and Flink integration, driver pipelining, event time vs processing time considerations, exactly-once processing, and running microservices with Kafka Streams.
The teaching method of the course involves a combination of theoretical concepts, architectural discussions, code examples in Scala, and practical considerations for production tradeoffs, latency, and backpressure.
The intended audience for this course includes developers, software engineers, architects, and anyone interested in building microservices using Kafka and Akka Streams.
Syllabus
Introduction
Streaming Context
Reilly Report
Architecture
Data Backplane
Kafka
Partitioning
Architecture benefits
Kafka solves problems
Kafka Streaming
Spark and Flink
Driver
Pipelining
Microservices
Streaming alternatives
Akka vs Kafka
Events vs Messages
Akka Streams
Event Time vs Processing Time
Exactly Once
Case Dream
Limitations
Example
Scala API
Kafka Topics
Kafka Stream Builder
Running Microservices
Akka Streams Example
Kafka Streams Code
Production Tradeoffs
Latency
Backpressure
Wrapup
Taught by
Scala Days Conferences