SlideShare a Scribd company logo
1 of 37
Download to read offline
High Scalable
Streaming
Microservices with
Kafka Streams
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 1
Who am I?
Roberto Perez Alcolea
• Mexican
• Streaming Platform @ Target
• Groovy Enthusiast
• roberto@perezalcolea.info
• @rpalcolea
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 2
Stream Processing
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 3
Paradigms getting input and
producing outputs
• Request/Response
• Batch
• Stream processing
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 4
Request/Response
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 5
Batch
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 6
Stream Processing
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 7
Stream Processing
• Applications react to events instantly
• Can handle data volumes that are much larger than other
data processing systems
• Naturally and easily models the continuous and timely
nature of most data
• Decentralizes and decouples the infrastructure
• Asynchronous
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 8
Stateful Stream Processing
• Computation maintains contextual state
• State is used to store information derived from the
previously-seen events
• Requires a stream processor that supports state
management
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 9
Stream Processing - Hard Parts
• Accurate results
• Partitioning & Scalability
• Fault tolerance
• Time
• Re-processing
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 10
Stream Processing - Use cases
• Network monitoring
• Intelligence and surveillance
• Risk management
• E-commerce
• Fraud detection
• Smart order routing
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 11
Stream Processing - Semantics
Systems fail! Depending on the action the producer takes to
handle such a failure, you can get different semantics:
• At least once
• At most once
• Exactly once
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 12
Apache Kafka
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 13
What is Apache Kafka?
• Distributed streaming platform
• Based on an abstraction of a distributed commit log
• Created and open sourced by LinkedIn
• Provides low-latency, high-throughput, fault-tolerant publish
and subscribe pipelines and is able to process streams of
events
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 14
Apache Kafka - Concepts
• Run as a cluster on one or more servers that can span
multiple datacenters
• The Kafka cluster stores streams of records in categories
called topics
• Each record consists of a key, a value, and a timestamp
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 15
Apache Kafka - Core APIs
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 16
Apache Kafka - Topics and logs
• Category or feed name to which records are published
• Multi-subscriber
• Kafka cluster maintains a partitioned log for each topics
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 17
Apache Kafka - Topics and logs
• Partition is an ordered, immutable sequence of records
• Records have offsets
• Records are persisted with a retention period
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 18
Apache Kafka - Topics and logs
• Distributed over the servers in the Kafka cluster
• Each partition is replicated across a configurable number of
servers for fault tolerance
• Each partition has one server which acts as the "leader" and
zero or more servers which act as "followers"
• MirrorMaker provides geo-replication support for your
clusters
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 19
Apache Kafka - Producers
• Publish data to the topics of their choice
• Responsible for choosing which record to assign to which
partition within the topic
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 20
Apache Kafka - Consumers
• Has a consumer group
• Records are load balanced over the consumer instances of
the same group
• Partitions are divided across consumer instances
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 21
Kafka Streams
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 22
What is Kafka Streams?
• Built upon important concepts for stream processing
• Java Library
• Highly scalable, elastic and fault tolerant
• Exactly Once capabilities
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 23
What is Kafka Streams?
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 24
Concepts
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 25
Streams
• Stream: represents unbounded, continuously updating data
set
• Stream Partition: ordered, replayable, and fault-tolerant
sequence of immutable data records
• Stream Application: program that makes use of the Kafka
Streams library.
• Multiple instances
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 26
Processor topology
• Defines the computational logic of the data processing that
needs to be performed by a stream processing application
• low-level Processor API or Kafka Streams DSL
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 27
KStream
• Record stream abstraction
• Read from/written to external topic or product from other
KStream
• append-only
("alice", 1) --> ("alice", 3)
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 28
KTable
• Changelog stream abstraction (snapshot of the latest value
for each key in a stream)
• Each data record represents an update
• Produced from other tables or stream join/aggregation
• Read from external topic
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 29
KTable and KStream
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 30
State Store
• Fault tolerant Key-value store for stateful operations
• RocksDB or in-memory hash map
• Interactive Queries
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 31
Time Windows
• Control how to group records that have the same key for
stateful operations
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 32
Important Considerations
• Internal topics
• Need of disk when using RocksDB
• Proper partitioning
• Parallelism
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 33
Example
static void main(final String[] args) throws Exception {
Properties streamsConfiguration = KafkaStreamsConfig.getConfig("order-filter-example")
final StreamsBuilder builder = new StreamsBuilder()
KStream<String, String> ordersStream = builder.stream("orders")
KStream<String, String> ordersPerBook = ordersStream.filter({
key, value -> objectMapper.readValue(value, Order).quantity > 5
})
ordersPerBook.to("filtered-orders")
final KafkaStreams streams = new KafkaStreams(builder.build(), streamsConfiguration)
streams.cleanUp()
streams.start()
}
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 34
Demo
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 35
Useful links
https://docs.confluent.io/current/streams/index.html
https://kafka.apache.org/documentation/
https://github.com/rpalcolea/gr8confus-2018-presentations
https://github.com/rpalcolea/gr8confus-2018-kafka-streams-
demos
Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 36
Thank
YouRoberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 37

More Related Content

What's hot

Kafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINE
Kafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINEKafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINE
Kafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINEkawamuray
 
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...Guozhang Wang
 
High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016Eric Sammer
 
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & KafkaMohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & KafkaFlink Forward
 
Apache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache ApexApache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache ApexApache Apex
 
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...HostedbyConfluent
 
Bullet: A Real Time Data Query Engine
Bullet: A Real Time Data Query EngineBullet: A Real Time Data Query Engine
Bullet: A Real Time Data Query EngineDataWorks Summit
 
Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant confluent
 
Large-Scale Stream Processing in the Hadoop Ecosystem
Large-Scale Stream Processing in the Hadoop EcosystemLarge-Scale Stream Processing in the Hadoop Ecosystem
Large-Scale Stream Processing in the Hadoop EcosystemGyula Fóra
 
Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016
Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016
Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016Gyula Fóra
 
Kick your database_to_the_curb_reston_08_27_19
Kick your database_to_the_curb_reston_08_27_19Kick your database_to_the_curb_reston_08_27_19
Kick your database_to_the_curb_reston_08_27_19confluent
 
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingOracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingMichael Rainey
 
Hadoop summit - Scaling Uber’s Real-Time Infra for Trillion Events per Day
Hadoop summit - Scaling Uber’s Real-Time Infra for  Trillion Events per DayHadoop summit - Scaling Uber’s Real-Time Infra for  Trillion Events per Day
Hadoop summit - Scaling Uber’s Real-Time Infra for Trillion Events per DayAnkur Bansal
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computingTimothy Spann
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...confluent
 
Pulsar summit asia 2021: Designing Pulsar for Isolation
Pulsar summit asia 2021: Designing Pulsar for IsolationPulsar summit asia 2021: Designing Pulsar for Isolation
Pulsar summit asia 2021: Designing Pulsar for IsolationShivji Kumar Jha
 
Kafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, Uber
Kafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, UberKafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, Uber
Kafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, UberHostedbyConfluent
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggleconfluent
 
HBaseConEast2016: Coprocessors – Uses, Abuses and Solutions
HBaseConEast2016: Coprocessors – Uses, Abuses and SolutionsHBaseConEast2016: Coprocessors – Uses, Abuses and Solutions
HBaseConEast2016: Coprocessors – Uses, Abuses and SolutionsMichael Stack
 
HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...
HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...
HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...Michael Stack
 

What's hot (20)

Kafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINE
Kafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINEKafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINE
Kafka Multi-Tenancy - 160 Billion Daily Messages on One Shared Cluster at LINE
 
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
 
High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016High cardinality time series search: A new level of scale - Data Day Texas 2016
High cardinality time series search: A new level of scale - Data Day Texas 2016
 
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & KafkaMohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
Mohamed Amine Abdessemed – Real-time Data Integration with Apache Flink & Kafka
 
Apache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache ApexApache Big Data EU 2016: Building Streaming Applications with Apache Apex
Apache Big Data EU 2016: Building Streaming Applications with Apache Apex
 
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...
 
Bullet: A Real Time Data Query Engine
Bullet: A Real Time Data Query EngineBullet: A Real Time Data Query Engine
Bullet: A Real Time Data Query Engine
 
Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant
 
Large-Scale Stream Processing in the Hadoop Ecosystem
Large-Scale Stream Processing in the Hadoop EcosystemLarge-Scale Stream Processing in the Hadoop Ecosystem
Large-Scale Stream Processing in the Hadoop Ecosystem
 
Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016
Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016
Large-Scale Stream Processing in the Hadoop Ecosystem - Hadoop Summit 2016
 
Kick your database_to_the_curb_reston_08_27_19
Kick your database_to_the_curb_reston_08_27_19Kick your database_to_the_curb_reston_08_27_19
Kick your database_to_the_curb_reston_08_27_19
 
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingOracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
 
Hadoop summit - Scaling Uber’s Real-Time Infra for Trillion Events per Day
Hadoop summit - Scaling Uber’s Real-Time Infra for  Trillion Events per DayHadoop summit - Scaling Uber’s Real-Time Infra for  Trillion Events per Day
Hadoop summit - Scaling Uber’s Real-Time Infra for Trillion Events per Day
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
 
Pulsar summit asia 2021: Designing Pulsar for Isolation
Pulsar summit asia 2021: Designing Pulsar for IsolationPulsar summit asia 2021: Designing Pulsar for Isolation
Pulsar summit asia 2021: Designing Pulsar for Isolation
 
Kafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, Uber
Kafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, UberKafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, Uber
Kafka Tiered Storage | Satish Duggana and Sriharsha Chintalapani, Uber
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggle
 
HBaseConEast2016: Coprocessors – Uses, Abuses and Solutions
HBaseConEast2016: Coprocessors – Uses, Abuses and SolutionsHBaseConEast2016: Coprocessors – Uses, Abuses and Solutions
HBaseConEast2016: Coprocessors – Uses, Abuses and Solutions
 
HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...
HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...
HBaseConEast2016: How yarn timeline service v.2 unlocks 360 degree platform i...
 

Similar to GR8ConfUS 2018 - High Scalable Streaming Microservices with Kafka Streams

Capital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream ProcessingCapital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream Processingconfluent
 
Real Time Insights for Advertising Tech
Real Time Insights for Advertising TechReal Time Insights for Advertising Tech
Real Time Insights for Advertising TechApache Apex
 
Ingestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache ApexIngestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache ApexApache Apex
 
Building a Business Logic Translation Engine with Spark Streaming for Communi...
Building a Business Logic Translation Engine with Spark Streaming for Communi...Building a Business Logic Translation Engine with Spark Streaming for Communi...
Building a Business Logic Translation Engine with Spark Streaming for Communi...Spark Summit
 
Kafka Connect and Streams (Concepts, Architecture, Features)
Kafka Connect and Streams (Concepts, Architecture, Features)Kafka Connect and Streams (Concepts, Architecture, Features)
Kafka Connect and Streams (Concepts, Architecture, Features)Kai Wähner
 
World of Tanks Experience of Using Kafka
World of Tanks Experience of Using KafkaWorld of Tanks Experience of Using Kafka
World of Tanks Experience of Using KafkaLevon Avakyan
 
Consensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdfConsensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdfGuozhang Wang
 
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Guido Schmutz
 
Intro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big DataIntro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big DataApache Apex
 
Performance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State StoresPerformance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State Storesconfluent
 
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...HostedbyConfluent
 
Apache Kafka® at Dropbox
Apache Kafka® at DropboxApache Kafka® at Dropbox
Apache Kafka® at Dropboxconfluent
 
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0Legacy Typesafe (now Lightbend)
 
Stream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache ApexStream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache ApexApache Apex
 
What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?confluent
 
Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaScyllaDB
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Kai Wähner
 
AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017
AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017
AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017Monal Daxini
 

Similar to GR8ConfUS 2018 - High Scalable Streaming Microservices with Kafka Streams (20)

Kafka Explainaton
Kafka ExplainatonKafka Explainaton
Kafka Explainaton
 
Capital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream ProcessingCapital One Delivers Risk Insights in Real Time with Stream Processing
Capital One Delivers Risk Insights in Real Time with Stream Processing
 
Real Time Insights for Advertising Tech
Real Time Insights for Advertising TechReal Time Insights for Advertising Tech
Real Time Insights for Advertising Tech
 
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
 
Ingestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache ApexIngestion and Dimensions Compute and Enrich using Apache Apex
Ingestion and Dimensions Compute and Enrich using Apache Apex
 
Building a Business Logic Translation Engine with Spark Streaming for Communi...
Building a Business Logic Translation Engine with Spark Streaming for Communi...Building a Business Logic Translation Engine with Spark Streaming for Communi...
Building a Business Logic Translation Engine with Spark Streaming for Communi...
 
Kafka Connect and Streams (Concepts, Architecture, Features)
Kafka Connect and Streams (Concepts, Architecture, Features)Kafka Connect and Streams (Concepts, Architecture, Features)
Kafka Connect and Streams (Concepts, Architecture, Features)
 
World of Tanks Experience of Using Kafka
World of Tanks Experience of Using KafkaWorld of Tanks Experience of Using Kafka
World of Tanks Experience of Using Kafka
 
Consensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdfConsensus in Apache Kafka: From Theory to Production.pdf
Consensus in Apache Kafka: From Theory to Production.pdf
 
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !
 
Intro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big DataIntro to Apache Apex @ Women in Big Data
Intro to Apache Apex @ Women in Big Data
 
Performance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State StoresPerformance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State Stores
 
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
Case-Study: Building Real-Time Applications at Scale-Cyclist Crash Detection ...
 
Apache Kafka® at Dropbox
Apache Kafka® at DropboxApache Kafka® at Dropbox
Apache Kafka® at Dropbox
 
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
A Deeper Look Into Reactive Streams with Akka Streams 1.0 and Slick 3.0
 
Stream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache ApexStream data from Apache Kafka for processing with Apache Apex
Stream data from Apache Kafka for processing with Apache Apex
 
What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?
 
Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and Kafka
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
 
AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017
AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017
AWS Re-Invent 2017 Netflix Keystone SPaaS - Monal Daxini - Abd320 2017
 

More from Roberto Pérez Alcolea

Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...Roberto Pérez Alcolea
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...Roberto Pérez Alcolea
 
DPE Summit - A More Integrated Build and CI to Accelerate Builds at Netflix
DPE Summit - A More Integrated Build and CI to Accelerate Builds at NetflixDPE Summit - A More Integrated Build and CI to Accelerate Builds at Netflix
DPE Summit - A More Integrated Build and CI to Accelerate Builds at NetflixRoberto Pérez Alcolea
 
Dependency Management in a Complex World (JConf Chicago 2022)
Dependency Management in a Complex World (JConf Chicago 2022)Dependency Management in a Complex World (JConf Chicago 2022)
Dependency Management in a Complex World (JConf Chicago 2022)Roberto Pérez Alcolea
 
Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)
Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)
Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)Roberto Pérez Alcolea
 
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)Roberto Pérez Alcolea
 
Dependency Management at Scale @ JConf Centroamérica 2020
Dependency Management at Scale @ JConf Centroamérica 2020Dependency Management at Scale @ JConf Centroamérica 2020
Dependency Management at Scale @ JConf Centroamérica 2020Roberto Pérez Alcolea
 
GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix
GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and HystrixGR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix
GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and HystrixRoberto Pérez Alcolea
 

More from Roberto Pérez Alcolea (10)

Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
DPE Summit - A More Integrated Build and CI to Accelerate Builds at Netflix
DPE Summit - A More Integrated Build and CI to Accelerate Builds at NetflixDPE Summit - A More Integrated Build and CI to Accelerate Builds at Netflix
DPE Summit - A More Integrated Build and CI to Accelerate Builds at Netflix
 
Dependency Management in a Complex World (JConf Chicago 2022)
Dependency Management in a Complex World (JConf Chicago 2022)Dependency Management in a Complex World (JConf Chicago 2022)
Dependency Management in a Complex World (JConf Chicago 2022)
 
Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)
Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)
Leveraging Gradle @ Netflix (Guadalajara JUG Feb 25, 2021)
 
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
 
Dependency Management at Scale @ JConf Centroamérica 2020
Dependency Management at Scale @ JConf Centroamérica 2020Dependency Management at Scale @ JConf Centroamérica 2020
Dependency Management at Scale @ JConf Centroamérica 2020
 
Dependency Management at Scale
Dependency Management at ScaleDependency Management at Scale
Dependency Management at Scale
 
GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix
GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and HystrixGR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix
GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix
 

Recently uploaded

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 

Recently uploaded (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 

GR8ConfUS 2018 - High Scalable Streaming Microservices with Kafka Streams

  • 1. High Scalable Streaming Microservices with Kafka Streams Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 1
  • 2. Who am I? Roberto Perez Alcolea • Mexican • Streaming Platform @ Target • Groovy Enthusiast • roberto@perezalcolea.info • @rpalcolea Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 2
  • 3. Stream Processing Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 3
  • 4. Paradigms getting input and producing outputs • Request/Response • Batch • Stream processing Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 4
  • 5. Request/Response Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 5
  • 6. Batch Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 6
  • 7. Stream Processing Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 7
  • 8. Stream Processing • Applications react to events instantly • Can handle data volumes that are much larger than other data processing systems • Naturally and easily models the continuous and timely nature of most data • Decentralizes and decouples the infrastructure • Asynchronous Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 8
  • 9. Stateful Stream Processing • Computation maintains contextual state • State is used to store information derived from the previously-seen events • Requires a stream processor that supports state management Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 9
  • 10. Stream Processing - Hard Parts • Accurate results • Partitioning & Scalability • Fault tolerance • Time • Re-processing Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 10
  • 11. Stream Processing - Use cases • Network monitoring • Intelligence and surveillance • Risk management • E-commerce • Fraud detection • Smart order routing Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 11
  • 12. Stream Processing - Semantics Systems fail! Depending on the action the producer takes to handle such a failure, you can get different semantics: • At least once • At most once • Exactly once Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 12
  • 13. Apache Kafka Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 13
  • 14. What is Apache Kafka? • Distributed streaming platform • Based on an abstraction of a distributed commit log • Created and open sourced by LinkedIn • Provides low-latency, high-throughput, fault-tolerant publish and subscribe pipelines and is able to process streams of events Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 14
  • 15. Apache Kafka - Concepts • Run as a cluster on one or more servers that can span multiple datacenters • The Kafka cluster stores streams of records in categories called topics • Each record consists of a key, a value, and a timestamp Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 15
  • 16. Apache Kafka - Core APIs Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 16
  • 17. Apache Kafka - Topics and logs • Category or feed name to which records are published • Multi-subscriber • Kafka cluster maintains a partitioned log for each topics Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 17
  • 18. Apache Kafka - Topics and logs • Partition is an ordered, immutable sequence of records • Records have offsets • Records are persisted with a retention period Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 18
  • 19. Apache Kafka - Topics and logs • Distributed over the servers in the Kafka cluster • Each partition is replicated across a configurable number of servers for fault tolerance • Each partition has one server which acts as the "leader" and zero or more servers which act as "followers" • MirrorMaker provides geo-replication support for your clusters Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 19
  • 20. Apache Kafka - Producers • Publish data to the topics of their choice • Responsible for choosing which record to assign to which partition within the topic Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 20
  • 21. Apache Kafka - Consumers • Has a consumer group • Records are load balanced over the consumer instances of the same group • Partitions are divided across consumer instances Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 21
  • 22. Kafka Streams Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 22
  • 23. What is Kafka Streams? • Built upon important concepts for stream processing • Java Library • Highly scalable, elastic and fault tolerant • Exactly Once capabilities Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 23
  • 24. What is Kafka Streams? Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 24
  • 25. Concepts Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 25
  • 26. Streams • Stream: represents unbounded, continuously updating data set • Stream Partition: ordered, replayable, and fault-tolerant sequence of immutable data records • Stream Application: program that makes use of the Kafka Streams library. • Multiple instances Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 26
  • 27. Processor topology • Defines the computational logic of the data processing that needs to be performed by a stream processing application • low-level Processor API or Kafka Streams DSL Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 27
  • 28. KStream • Record stream abstraction • Read from/written to external topic or product from other KStream • append-only ("alice", 1) --> ("alice", 3) Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 28
  • 29. KTable • Changelog stream abstraction (snapshot of the latest value for each key in a stream) • Each data record represents an update • Produced from other tables or stream join/aggregation • Read from external topic Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 29
  • 30. KTable and KStream Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 30
  • 31. State Store • Fault tolerant Key-value store for stateful operations • RocksDB or in-memory hash map • Interactive Queries Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 31
  • 32. Time Windows • Control how to group records that have the same key for stateful operations Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 32
  • 33. Important Considerations • Internal topics • Need of disk when using RocksDB • Proper partitioning • Parallelism Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 33
  • 34. Example static void main(final String[] args) throws Exception { Properties streamsConfiguration = KafkaStreamsConfig.getConfig("order-filter-example") final StreamsBuilder builder = new StreamsBuilder() KStream<String, String> ordersStream = builder.stream("orders") KStream<String, String> ordersPerBook = ordersStream.filter({ key, value -> objectMapper.readValue(value, Order).quantity > 5 }) ordersPerBook.to("filtered-orders") final KafkaStreams streams = new KafkaStreams(builder.build(), streamsConfiguration) streams.cleanUp() streams.start() } Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 34
  • 35. Demo Roberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 35
  • 37. Thank YouRoberto Perez Alcolea - High Scalable Streaming Microservices with Kafka Streams - GR8ConfUS 2018 37