The log is a simple idea New
Old
Messages are added at the end of the log
@gamussa
#TorontoKafka
@confluentinc
Slide 13
Consumers have a position all of their own George is here
Scan
New
Old
Fred is here @gamussa
Scan
Sally is here #TorontoKafka
Scan
@confluentinc
Slide 14
Only Sequential Access Old
Read to offset & scan
@gamussa
#TorontoKafka
New
@confluentinc
Slide 15
Shard data to get scalability Producer (1)
Producer (2)
Producer (3)
Messages are sent to different partitions Cluster of machines
Partitions live on different machines
@gamussa
#TorontoKafka
@confluentinc
Slide 16
CONSUMERS
CONSUMER GROUP
CONSUMER GROUP COORDINATOR
Slide 17
Linearly Scalable Architecture Producers
Single topic: - Many producers machines - Many consumer machines - Many Broker machines No Bottleneck!!
Consumers @gamussa
#TorontoKafka
@confluentinc
Slide 18
Talk is cheap! Show me code!
https://cnfl.io/streams-movie-demo
Slide 19
As developers, we want to build APPS not INFRASTRUCTURE @gamussa
#TorontoKafka
@confluentinc
Slide 20
@
Slide 21
the KAFKA
STREAMS API is a JAVA API to BUILD REAL-TIME APPLICATIONS
@gamussa
#TorontoKafka
@confluentinc
Slide 22
App Streams API
@gamussa
#TorontoKafka
Not running inside brokers!
@confluentinc
Slide 23
Same app, many instances
@gamussa
App
App
App
Streams API
Streams API
Streams API
#TorontoKafka
Brokers? Nope!
@confluentinc
Slide 24
Before Processing Cluster
Shared Database
Dashboard
Your Job
@gamussa
#TorontoKafka
@confluentinc
Slide 25
After
Dashboard
APP Streams API
@gamussa
#TorontoKafka
@confluentinc
Slide 26
this means you can
DEPLOY your app ANYWHERE using WHATEVER TECHNOLOGY YOU WANT
Slide 27
So many places to run you app!
...and many more... @gamussa
#TorontoKafka
@confluentinc
Slide 28
Things Kafka Stream Does Enterprise Support
Open Source
Powerful Processing incl. Filters, Transforms, Joins, Aggregations, Windowing
@gamussa
Runs Everywhere
Supports Streams and Tables
Elastic, Scalable, Fault-tolerant
Exactly-Once Processing
#TorontoKafka
Kafka Security Integration
Event-Time Processing
@confluentinc
Interaction with Kafka KSQL (processing)
Kafka
JVM application with Kafka Streams (processing)
(data)
Does not run on Kafka brokers
@gamussa
Does not run on Kafka brokers
#TorontoKafka
@confluentinc
Slide 38
Fault-Tolerance, powered by Kafka
@gamussa
#TorontoKafka
@confluentinc
Slide 39
Standing on the shoulders of Streaming Giants
KSQL
Ease of use
Powered by
KSQL UDFs
Kafka Streams Powered by
Producer, Consumer APIs @gamussa
Flexibility #TorontoKafka
@confluentinc
Slide 40
Thanks! @gamussa
viktor@confluent.io We are hiring! https://www.confluent.io/careers/ @gamussa
#TorontoKafka @
@confluentinc