8
New World Streaming first • DB/DWH + Many more distributed data systems • Monolith -> Microservices • Batch -> Real-time
@gamussa
|
#SpringOne
|
@ConfluentINc
Slide 9
9
Origins in Stream Processing Java Apps with Kafka Streams or KSQL
Serving Layer (Microservices, Elastic, etc.)
High Throughput Continuous Streaming platform Computation
@gamussa
|
#SpringOne
|
API based clustering
@ConfluentINc
15
The log is a simple idea New
Old
Messages are added at the end of the log
@gamussa
|
#SpringOne
|
@ConfluentINc
Slide 16
16
The log is a simple idea New
Old
Messages are added at the end of the log
@gamussa
|
#SpringOne
|
@ConfluentINc
Slide 17
17
Pub / Sub @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 18
18
Time
@gamussa
|
#SpringOne
|
@ConfluentINc
Slide 19
19
Time
C1 @gamussa
|
C2
#SpringOne
C3 |
@ConfluentINc
Slide 20
20
Time A
B hash(key) % numPartitions = N
C D @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 21
21
Time
Messages will be produced in a round robin fashion
@gamussa
|
#SpringOne
|
@ConfluentINc
Slide 22
22
Consumers have a position all of their own
Ricardo is here
Scan
New
Old
Robin is here
Scan
Viktor is here
@gamussa
|
Scan
#SpringOne
|
@ConfluentINc
Slide 23
23
Consumers have a position all of their own
Ricardo is here
Scan
New
Old
Robin is here @gamussa
Viktor is here
Scan
|
#SpringOne
|
Scan
@ConfluentINc
Slide 24
24
Consumers have a position all of their own
Ricardo is here
Scan
New
Old
Robin is here @gamussa
|
Viktor is here
Scan
#SpringOne
|
@ConfluentINc
Scan
Slide 25
25
Only Sequential Access
Old
Read to offset & scan
@gamussa
|
#SpringOne
|
@ConfluentINc
New
Slide 26
CONSUMERS
CONSUMER GROUP COORDINATOR
CONSUMER GROUP
Slide 27
27
C
@gamussa
|
#SpringOne
|
@ConfluentINc
Slide 28
28
CC C1
CC C2 @gamussa
|
#SpringOne
|
@ConfluentINc
38
The log is a type of durable messaging system Similar to a traditional messaging system (ActiveMQ, Rabbit etc) but with: (a) Far better scalability (b) Built in fault tolerance / HA (c) Storage
41
Streaming is the toolset for dealing with events as they move! @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 42
42
What exactly is Stream Processing? authorization_attempts
@gamussa
possible_fraud
|
#SpringOne
|
@ConfluentINc
Slide 43
43
What exactly is Stream Processing? possible_fraud
authorization_attempts
CREATE STREAM possible_fraud AS SELECT card_number, count() FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count() > 3; @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 44
44
What exactly is Stream Processing? possible_fraud
authorization_attempts
CREATE STREAM possible_fraud AS SELECT card_number, count() FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count() > 3; @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 45
45
What exactly is Stream Processing? possible_fraud
authorization_attempts
CREATE STREAM possible_fraud AS SELECT card_number, count() FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count() > 3; @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 46
46
What exactly is Stream Processing? possible_fraud
authorization_attempts
CREATE STREAM possible_fraud AS SELECT card_number, count() FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count() > 3; @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 47
47
What exactly is Stream Processing? possible_fraud
authorization_attempts
CREATE STREAM possible_fraud AS SELECT card_number, count() FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count() > 3; @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 48
48
What exactly is Stream Processing? possible_fraud
authorization_attempts
CREATE STREAM possible_fraud AS SELECT card_number, count() FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count() > 3; @gamussa
|
#SpringOne
|
@ConfluentINc
Slide 49
49
Coding Sophistication
Lower the bar to enter the world of streaming Core developers who use Java/Scala
streams Core developers who don’t use Java/Scala
Data engineers, architects, DevOps/SRE
BI analysts
User Population @gamussa
|
#SpringOne
|
@ConfluentINc
51
Interaction with Kafka KSQL
Application
Kafka
(processing)
(processing) Jva/KStreams, .NET
(data)
Does not run on Kafka brokers @gamussa
Does not run on Kafka brokers |
#SpringOne
|
@ConfluentINc
Slide 52
52
Find your local Meetup Group https://cnfl.io/kafka-meetups Grab Stream Processing books https://cnfl.io/book-bundle Join us in Slack http://cnfl.io/slack @gamussa
|
#SpringOne
|
@ConfluentINc