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

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
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
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
 
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.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
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
 

Recently uploaded (20)

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
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
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
 
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...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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 ...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
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
 

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