Slide 1

Slide 1 text

STREAM PROCESSING APACHE KAFKA

Slide 2

Slide 2 text

WHO AM I? ALEX XANDRA ALBERT SIM ‣ Principal Software Development Engineer at blibli.com ‣ Part of the R&D Team ‣ [email protected] ‣ bertzzie(.sim)

Slide 3

Slide 3 text

MAU BAHAS APA? TERSERAH… AGENDA ‣ Stream Core Concept ‣ Stream vs Subscription ‣ Simple Example: Word count ‣ More complicated example: Dota2 Replay Parser

Slide 4

Slide 4 text

STREAM CORE CONCEPT WHAT IS A STREAM? unbounded, continuously updating data set ordered, replayable, and fault-tolerant sequence of immutable data records key-value pair

Slide 5

Slide 5 text

STREAM CORE CONCEPT STREAM PROCESSOR? input -> process -> output …continuously

Slide 6

Slide 6 text

STREAM CORE CONCEPT

Slide 7

Slide 7 text

STREAM CORE CONCEPT GUARANTEE at least once exactly once (0.11.0.0+) defaults to “at least once”

Slide 8

Slide 8 text

STREAM CORE CONCEPT

Slide 9

Slide 9 text

STREAM CORE CONCEPT

Slide 10

Slide 10 text

STREAM VS SUBSCRIPTION WHAT’S THE DIFFERENCE?

Slide 11

Slide 11 text

STREAM VS SUBSCRIPTION KAFKA DATA SOURCE APP SUBSCRIBER APP publish subscribe OUTPUT SUBSCRIPTION

Slide 12

Slide 12 text

STREAM VS SUBSCRIPTION KAFKA DATA SOURCE APP STREAM PROCESSOR publish stream STREAM stream

Slide 13

Slide 13 text

STREAM VS SUBSCRIPTION NOTE THAT: ‣ Stream API is built on top of Subscription API ‣ Mostly the difference is on feature and convenience ‣ e.g. stream has interactive query, functional DSL, event- processing, etc ‣ You can do this all in Subscription API if you want to

Slide 14

Slide 14 text

DEMO 1 SIMPLE STREAM APPLICATION

Slide 15

Slide 15 text

PRE-DEMO 2 WHAT WE’RE GOING TO DO ‣ Read Dota2 Replay File ‣ Get hero position every game tick ‣ Stream to count how many times someone move to certain coordinate ‣ Useful for analysis e.g. heatmap of coordinate, positioning analysis

Slide 16

Slide 16 text

DEMO 2 DOTA 2 REPLAY PARSER

Slide 17

Slide 17 text

MORE! WANT TO KNOW MORE? ‣ Code is at https://github.com/bertzzie/kafka-clarity ‣ Slides is at https://s.id/jvm5slide2 ‣ Feel free to talk to me anytime (email, social media, etc)! ‣ Also talk to good people at @JVMUserGroup in Telegram

Slide 18

Slide 18 text

WORK WITH US, WE HAVE COOKIES! blibli.com . HMM..

Slide 19

Slide 19 text

QUESTIONS?