Stream Processing Smackdown: Kafka Streams vs. Apache Flink

A presentation at Current London in May 2025 in London, UK by Viktor Gamov

Slide 1

Slide 1

Stream Processing Smackdown: Apache Flink v Kafka Streams fl Viktor Gamov, Con uent X/Bluesky: @gamussa Current London, 2025

Slide 2

Slide 2

Viktor GAMOV Principal Developer Advocate @ConfluentInc Java Champion Co-Author «Kafka in Action» X and Bluesky: @gamussa

Slide 3

Slide 3

Slides and Video https://speaking.gamov.io/ X/Bluesky: @gamussa

Slide 4

Slide 4

What is Stream Processing? X/Bluesky: @gamussa

Slide 5

Slide 5

What is Stream Processing? Stream Processing is the toolset for dealing with events as they move! X/Bluesky: @gamussa

Slide 6

Slide 6

Stateless or Stateful? X/Bluesky: @gamussa

Slide 7

Slide 7

X/Bluesky: @gamussa

Slide 8

Slide 8

X/Bluesky: @gamussa

Slide 9

Slide 9

Application/System Architecture X/Bluesky: @gamussa

Slide 10

Slide 10

Kafka Streams Architecture X/Bluesky: @gamussa

Slide 11

Slide 11

@gamussa | @kafkastreams | @apacheflink

Slide 12

Slide 12

Apache Flink Architecture X/Bluesky: @gamussa

Slide 13

Slide 13

@gamussa | @kafkastreams | @apacheflink

Slide 14

Slide 14

State Management X/Bluesky: @gamussa

Slide 15

Slide 15

State Management in Kafka Streams X/Bluesky: @gamussa

Slide 16

Slide 16

@gamussa | @kafkastreams | @apacheflink

Slide 17

Slide 17

State Management in Apache Flink X/Bluesky: @gamussa

Slide 18

Slide 18

@gamussa | @kafkastreams | @apacheflink

Slide 19

Slide 19

Task Assignment and Scale X/Bluesky: @gamussa

Slide 20

Slide 20

Task Assignment and Scale in Kafka Streams X/Bluesky: @gamussa

Slide 21

Slide 21

@gamussa | @kafkastreams | @apacheflink

Slide 22

Slide 22

State Management in Apache Flink X/Bluesky: @gamussa

Slide 23

Slide 23

@gamussa | @kafkastreams | @apacheflink

Slide 24

Slide 24

Window Operations X/Bluesky: @gamussa

Slide 25

Slide 25

Windowing in Kafka Streams X/Bluesky: @gamussa

Slide 26

Slide 26

@gamussa | @kafkastreams | @apacheflink

Slide 27

Slide 27

Windowing in Apache Flink X/Bluesky: @gamussa

Slide 28

Slide 28

@gamussa | @kafkastreams | @apacheflink

Slide 29

Slide 29

Exactly Once X/Bluesky: @gamussa

Slide 30

Slide 30

Exactly Once in Kafka Streams X/Bluesky: @gamussa

Slide 31

Slide 31

@gamussa | @kafkastreams | @apacheflink

Slide 32

Slide 32

@gamussa | @kafkastreams | @apacheflink

Slide 33

Slide 33

@gamussa | @kafkastreams | @apacheflink

Slide 34

Slide 34

Exactly Once in Apache Flink X/Bluesky: @gamussa

Slide 35

Slide 35

@gamussa | @kafkastreams | @apacheflink

Slide 36

Slide 36

@gamussa | @kafkastreams | @apacheflink

Slide 37

Slide 37

Cool Story, Bro ™ But What Shall I Use? X/Bluesky: @gamussa

Slide 38

Slide 38

Use Kafka Streams • Event Driven Microservice • Flexible Deployment Model (just a jar) • Easy Testing • Built-in Exactly-Once Semantics • Kafka-centric X/Bluesky: @gamussa

Slide 39

Slide 39

Use Apache Flink • Massive Stateful Operations • Variety of Sources and Sinks • Uni ed API for Streams and Batch • Complex Window operations and Late Event handling • Flink SQL, PyFlink fi X/Bluesky: @gamussa

Slide 40

Slide 40

As Always Have a Nice Day X/Bluesky: @gamussa Github: @gamussa LinkedIn: vikgamov https://gamov.dev/rel http://gamov.dev/YouTube X and Bluesky: @gamussa