SlideShare a Scribd company logo
Seamless Guest Experience with Kafka Streams
Ram IndukuriHimani Arora Suresh Mulukaladu
About Knoldus
Technology consulting firm with focus on digital transformation
Functional. Reactive. Cloud Native
We are global cruise vacation company that controls and operates four global
brands. Royal Caribbean International, Azamara club, Celebrity cruises and
Silversea Cruises.We are also 50% joint venture owner of German brand TUI
Cruises and 49% owner of the spanish brand Pullmantur Cruceros.
About Royal Caribbean International
Royal Caribbean International - Facts
● World’s second largest global cruise line
● Represents more than 20% of global cruisers
● 9.5 billion in revenues (2018)
● Serving more than 5 Million guests every year around the globe
● 60 ships in service and another 14 ships on the way
● Oasis class(World’s largest) ships carry close to 6000 guests and 2000
crew
Guest Journey - touchpoints
Discover Book
Cruise
Excursion
s
Check In Board
Ship
Cruise Take
Excursion
s
Debark Create
Memories
● Research vacation options
● Book the cruise & air reservations
● Plan and Book activities on the cruise
● Complete online check-in and get boarding pass
● Pre cruise activities
● Get to the embarkation port
● Check-in to the cruise and board
● Get to your state room
● Book dinner reservations and activities
● Enjoy the cruise and activities
● Excursions at ports of call
● Debarkation
● Post cruise activities
● Fly back
● Get home
Excalibur
Digital Vision
Discover Book Cruise Pre Cruise
Planning
Check In Board Ship Cruise Take
Excursions
Debark Create
Memories
Sensor
Wearable
TV
API Layer
Device Layer
One App
Architectural Challenges
1
How to Standardize Footprints
on all ships and shore ?
3
How do guests have seamless
experience on ship(s) and
shore if we rely on batch
process ?
2
How do we build on what we
have today ?
Same infrastructure on
ship/shore
API and Microservices Event driven Architecture with real time
synchronization
Ship-Shore Highway - Event enabling Fleet
M
icroservice
sData
stores
IoT Devices
System of
Record
M
icroservice
s Data
stores
IoT Devices
System of
Record
Ship Shore Highway
Event enablement, transmission, processing & Analytics across fleet
SoR Ship-Shore Pattern
API Gateway
Micro Service
Data Store
System of
Record
Data Store
System of
Record
Micro Service
Change data Capture - Using Kafka Connect
Web
Call Center
Travel Agent
SQL
Mirror
Kafka
Connect
ConfluentKafka
Kafka
Shore
Reservation
SOR
AWS
Data Transformer
Replicator
Kafka Ship
Broadcasting events - Using Streams
Web
Call Center
Travel Agent
IIDR
Confluent Kafka
Business Events &
Change Data
Reservation
SOR
AWS
Kafka
Streams Replicator
Kafka
Generating Business Events by Combining Topics
Booking ID(pk)
Guest ID
Guest ID(pk)
Name
Address
State Store
State Store
JOIN
Guest ID
Booking ID
Name
Address
Generating Business Events by Combining Topics
StreamsBuilder builder = new StreamsBuilder();
KStream<String, BookingDetails> guestBookings = builder.stream(guestBookingTopic)
.selectKey((key, value) -> value.getGuestId());
KStream<String, GuestDetails> guestDetails = builder.stream(guestDetailsTopic);
KStream<String, GuestBookingDetails> guestBookingAndDetails = guestBookings
.join(guestDetails,
(guestBooking, guestDetail) -> /* business event message */,
JoinWindows.of(Duration.ofHours(10));
Guest Bookings Stream
Guest Details Stream
Transparent Handling of Late Arrival Records
SLIDING
WINDOW
JoinWindows.of(Duration.ofHours(10))
Late
Arriving
Record
Event 1Event 2
Event 1Event 2
Event 12
Event 13
Event 13
Event 14
Event 14
Event 15
Transparent Handling of Late Arrival Records
Guest Bookings Stream
Guest Details Stream
SLIDING
WINDOW
Grace Period set to:
JoinWindows.of(Duration.ofHours(10)).grace(Duration.ofHours(24)))
Event 1Event 2
Event 1Event 2
Event 12
Event 13
Event 13
Event 14
Event 14
Event 15
Transparent Handling of Late Arrival Records
StreamsBuilder builder = new StreamsBuilder();
KStream<String, BookingDetails> guestBookings = builder.stream(guestBookingTopic)
.selectKey((key, value) -> value.getGuestId());
KStream<String, GuestDetails> guestDetails = builder.stream(guestDetailsTopic);
KStream<String, GuestBookingDetails> guestBookingAndDetails = guestBookings
.join(guestDetails,
(guestBooking, guestDetail) -> /* business event message */,
JoinWindows.of(Duration.ofHours(10)
.grace(Duration.ofHours(24))
);
Consecutive Joins on Multiple Topics
Booking ID
Guest ID
Guest ID
Name
Address
State Store
State Store
JOIN
Guest ID
Purchase ID
Intermediate
State Store
Consecutive Joins on Multiple Topics
Booking ID
Guest ID
Guest ID
Name
Address
State Store
State Store
JOIN
Guest ID
Purchase ID
Intermedi
ate Store
State Store
JOIN
Guest ID
Booking ID
Purchase ID
Name
Address
Transparent Handling of Late Arrival Records
StreamsBuilder builder = new StreamsBuilder();
KStream<String, BookingDetails> guestBookings = builder.stream(guestBookingTopic)
.selectKey((key, value) -> value.getGuestId());
KStream<String, PurchaseDetails> guestPurchases = builder.stream(guestPurchasesTopic);
.selectKey((key, value) -> value.getGuestId());
KStream<String, GuestDetails> guestDetails = builder.stream(guestDetailsTopic);
KStream<String, GuestBookingDetails> guestBookingAndDetails = guestBookings
.join(guestDetails,
(guestBooking, guestDetail) -> /* business event message with booking id and
guest details */,
JoinWindows.of(Duration.ofHours(10)
.join(guestPurchases,
(guestBookingDetail,guestPurchase) -> /* business event message with guest
details, booking and purchase details*/,
JoinWindows.of(Duration.ofHours(10)));
Ensuring Streaming reliability - Graphite/Grafana
Kafka
Stream
App
JMX
Graphite Grafana
● Consumer Lag to detect surges
● Idle time threshold to predict Thread health
● Bytes Received in last window indicating Kafka broker issues
Lack of activity indicate either
broker failure or app failure
Ensuring Data Quality - Apache Spark
Apache Spark Apache Spark
Minio
incremental
Mirroring
1
2
3
4 5
Next Steps - Interactive Queries
Instance 1
Instance 2
Instance 3
GUEST API
Local Kafka
State Store
Local Kafka
State Store
Local Kafka
State Store
host1:4047
host2:5047
host3:4460
Exposing RPC endpoint and
information about its local
state store
Kafka Cluster
Summary
● Real time guest information synchronization across ship and
shore was possible with kafka, connect and replicators
● Kafka streams and IIDR helped to reduce the latency in
processing the CDC
● Isolate critical connectors into their own connect cluster to
reduce risk
● Order guarantee is easier to achieve with streams than
connectors.
● Invest in domain driven design
● Include legacy dependencies in critical path for planning
feature delivery.
More Information
Ram Indukuri ram@knoldus.com
Himani Arora himani@knoldus.com
Suresh Mulukuladu smulukuladu@rccl.com
For more information
Blog: https://blog.knoldus.com/join-semantics-kafka-streams/
Git Samples: https://github.com/knoldus/

More Related Content

What's hot

AWS Community Day 2022 Joe Daly FinOps
AWS Community Day 2022 Joe Daly FinOpsAWS Community Day 2022 Joe Daly FinOps
AWS Community Day 2022 Joe Daly FinOps
AWS Chicago
 
Apache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWSApache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWS
Amazon Web Services
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 
Understanding MLOps
Understanding MLOpsUnderstanding MLOps
Understanding MLOps
Chun Myung Kyu
 
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
Amazon Web Services
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech Conference
Robert Nicholson
 
MuCon London 2017: Break your event chains
MuCon London 2017: Break your event chainsMuCon London 2017: Break your event chains
MuCon London 2017: Break your event chains
Bernd Ruecker
 
Optimize Cost Efficiency on AWS
Optimize Cost Efficiency on AWSOptimize Cost Efficiency on AWS
Optimize Cost Efficiency on AWS
Amazon Web Services
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
Channy Yun
 
딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018
딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018
딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018
Amazon Web Services Korea
 
SAP Mobile Platform - Product and Roadmap
SAP Mobile Platform - Product and RoadmapSAP Mobile Platform - Product and Roadmap
SAP Mobile Platform - Product and Roadmap
SAP PartnerEdge program for Application Development
 
Stream Processing – Concepts and Frameworks
Stream Processing – Concepts and FrameworksStream Processing – Concepts and Frameworks
Stream Processing – Concepts and Frameworks
Guido Schmutz
 
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
Amazon Web Services Korea
 
Mainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache KafkaMainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache Kafka
Kai Wähner
 
Event driven architecture with Kafka
Event driven architecture with KafkaEvent driven architecture with Kafka
Event driven architecture with Kafka
Florence Next
 
클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017
클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017
클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
YARN: the Key to overcoming the challenges of broad-based Hadoop AdoptionYARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
DataWorks Summit
 
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
Amazon Web Services
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your Enterprise
RightScale
 
Cloudamize Platform Training for Azure.pptx
Cloudamize Platform Training for Azure.pptxCloudamize Platform Training for Azure.pptx
Cloudamize Platform Training for Azure.pptx
SasikumarPalanivel3
 

What's hot (20)

AWS Community Day 2022 Joe Daly FinOps
AWS Community Day 2022 Joe Daly FinOpsAWS Community Day 2022 Joe Daly FinOps
AWS Community Day 2022 Joe Daly FinOps
 
Apache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWSApache Spark and the Hadoop Ecosystem on AWS
Apache Spark and the Hadoop Ecosystem on AWS
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
Understanding MLOps
Understanding MLOpsUnderstanding MLOps
Understanding MLOps
 
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech Conference
 
MuCon London 2017: Break your event chains
MuCon London 2017: Break your event chainsMuCon London 2017: Break your event chains
MuCon London 2017: Break your event chains
 
Optimize Cost Efficiency on AWS
Optimize Cost Efficiency on AWSOptimize Cost Efficiency on AWS
Optimize Cost Efficiency on AWS
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018
딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018
딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기 - 손은주, 매스프레소 :: AWS DevDay 2018
 
SAP Mobile Platform - Product and Roadmap
SAP Mobile Platform - Product and RoadmapSAP Mobile Platform - Product and Roadmap
SAP Mobile Platform - Product and Roadmap
 
Stream Processing – Concepts and Frameworks
Stream Processing – Concepts and FrameworksStream Processing – Concepts and Frameworks
Stream Processing – Concepts and Frameworks
 
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
 
Mainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache KafkaMainframe Integration, Offloading and Replacement with Apache Kafka
Mainframe Integration, Offloading and Replacement with Apache Kafka
 
Event driven architecture with Kafka
Event driven architecture with KafkaEvent driven architecture with Kafka
Event driven architecture with Kafka
 
클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017
클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017
클라우드를 통한 엔터프라이즈 산업 변신 사례 - AWS Summit Seoul 2017
 
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
YARN: the Key to overcoming the challenges of broad-based Hadoop AdoptionYARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
 
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your Enterprise
 
Cloudamize Platform Training for Azure.pptx
Cloudamize Platform Training for Azure.pptxCloudamize Platform Training for Azure.pptx
Cloudamize Platform Training for Azure.pptx
 

Similar to Seamless Guest Experience with Kafka Streams (Ramaraju Indukurir and Himani Arora, Knoldus Inc and Suresh Mulukaladu, Royal Caribbean Cruises International) Kafka Summit London 2019

Seamless Guest Experience with Kafka Streams
Seamless Guest Experience with Kafka StreamsSeamless Guest Experience with Kafka Streams
Seamless Guest Experience with Kafka Streams
Knoldus Inc.
 
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
confluent
 
Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?
Guido Schmutz
 
SVCC Developing Asynchronous, Message-Driven Microservices
SVCC Developing Asynchronous, Message-Driven Microservices  SVCC Developing Asynchronous, Message-Driven Microservices
SVCC Developing Asynchronous, Message-Driven Microservices
Chris Richardson
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
Chris Richardson
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
Guido Schmutz
 
RBea: Scalable Real-Time Analytics at King
RBea: Scalable Real-Time Analytics at KingRBea: Scalable Real-Time Analytics at King
RBea: Scalable Real-Time Analytics at King
Gyula Fóra
 
Gyula Fóra - RBEA- Scalable Real-Time Analytics at King
Gyula Fóra - RBEA- Scalable Real-Time Analytics at KingGyula Fóra - RBEA- Scalable Real-Time Analytics at King
Gyula Fóra - RBEA- Scalable Real-Time Analytics at King
Flink Forward
 
Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...
Chris Richardson
 
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017  - The Data Dichotomy- Rethinking Data and Services with StreamsNDC London 2017  - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
Ben Stopford
 
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
HostedbyConfluent
 
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Chris Richardson
 
Building a Real-time Streaming ETL Framework Using ksqlDB and NoSQL
Building a Real-time Streaming ETL Framework Using ksqlDB and NoSQLBuilding a Real-time Streaming ETL Framework Using ksqlDB and NoSQL
Building a Real-time Streaming ETL Framework Using ksqlDB and NoSQL
ScyllaDB
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
Chris Richardson
 
Advanced RingCentral API Use Cases
Advanced RingCentral API Use CasesAdvanced RingCentral API Use Cases
Advanced RingCentral API Use Cases
Byrne Reese
 
Mucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous MicroservicesMucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous Microservices
Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Chris Richardson
 
Event streaming webinar feb 2020
Event streaming webinar feb 2020Event streaming webinar feb 2020
Event streaming webinar feb 2020
Maheedhar Gunturu
 
PayPal Real Time Analytics
PayPal  Real Time AnalyticsPayPal  Real Time Analytics
PayPal Real Time Analytics
Anil Madan
 
Real-time analytics as a service at King
Real-time analytics as a service at King Real-time analytics as a service at King
Real-time analytics as a service at King
Gyula Fóra
 

Similar to Seamless Guest Experience with Kafka Streams (Ramaraju Indukurir and Himani Arora, Knoldus Inc and Suresh Mulukaladu, Royal Caribbean Cruises International) Kafka Summit London 2019 (20)

Seamless Guest Experience with Kafka Streams
Seamless Guest Experience with Kafka StreamsSeamless Guest Experience with Kafka Streams
Seamless Guest Experience with Kafka Streams
 
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
Kafka as an Event Store (Guido Schmutz, Trivadis) Kafka Summit NYC 2019
 
Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?Kafka as an Event Store - is it Good Enough?
Kafka as an Event Store - is it Good Enough?
 
SVCC Developing Asynchronous, Message-Driven Microservices
SVCC Developing Asynchronous, Message-Driven Microservices  SVCC Developing Asynchronous, Message-Driven Microservices
SVCC Developing Asynchronous, Message-Driven Microservices
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
 
RBea: Scalable Real-Time Analytics at King
RBea: Scalable Real-Time Analytics at KingRBea: Scalable Real-Time Analytics at King
RBea: Scalable Real-Time Analytics at King
 
Gyula Fóra - RBEA- Scalable Real-Time Analytics at King
Gyula Fóra - RBEA- Scalable Real-Time Analytics at KingGyula Fóra - RBEA- Scalable Real-Time Analytics at King
Gyula Fóra - RBEA- Scalable Real-Time Analytics at King
 
Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...
 
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017  - The Data Dichotomy- Rethinking Data and Services with StreamsNDC London 2017  - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
 
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
Powering Consistent, High-throughput, Real-time Distributed Calculation Engin...
 
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
 
Building a Real-time Streaming ETL Framework Using ksqlDB and NoSQL
Building a Real-time Streaming ETL Framework Using ksqlDB and NoSQLBuilding a Real-time Streaming ETL Framework Using ksqlDB and NoSQL
Building a Real-time Streaming ETL Framework Using ksqlDB and NoSQL
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
 
Advanced RingCentral API Use Cases
Advanced RingCentral API Use CasesAdvanced RingCentral API Use Cases
Advanced RingCentral API Use Cases
 
Mucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous MicroservicesMucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous Microservices
 
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
 
Event streaming webinar feb 2020
Event streaming webinar feb 2020Event streaming webinar feb 2020
Event streaming webinar feb 2020
 
PayPal Real Time Analytics
PayPal  Real Time AnalyticsPayPal  Real Time Analytics
PayPal Real Time Analytics
 
Real-time analytics as a service at King
Real-time analytics as a service at King Real-time analytics as a service at King
Real-time analytics as a service at King
 

More from confluent

Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
confluent
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
confluent
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
confluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
confluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
confluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
confluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
confluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
confluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
confluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
confluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
confluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
confluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
confluent
 

More from confluent (20)

Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 

Recently uploaded

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 

Recently uploaded (20)

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 

Seamless Guest Experience with Kafka Streams (Ramaraju Indukurir and Himani Arora, Knoldus Inc and Suresh Mulukaladu, Royal Caribbean Cruises International) Kafka Summit London 2019

  • 1. Seamless Guest Experience with Kafka Streams Ram IndukuriHimani Arora Suresh Mulukaladu
  • 2. About Knoldus Technology consulting firm with focus on digital transformation Functional. Reactive. Cloud Native
  • 3. We are global cruise vacation company that controls and operates four global brands. Royal Caribbean International, Azamara club, Celebrity cruises and Silversea Cruises.We are also 50% joint venture owner of German brand TUI Cruises and 49% owner of the spanish brand Pullmantur Cruceros. About Royal Caribbean International
  • 4. Royal Caribbean International - Facts ● World’s second largest global cruise line ● Represents more than 20% of global cruisers ● 9.5 billion in revenues (2018) ● Serving more than 5 Million guests every year around the globe ● 60 ships in service and another 14 ships on the way ● Oasis class(World’s largest) ships carry close to 6000 guests and 2000 crew
  • 5. Guest Journey - touchpoints Discover Book Cruise Excursion s Check In Board Ship Cruise Take Excursion s Debark Create Memories ● Research vacation options ● Book the cruise & air reservations ● Plan and Book activities on the cruise ● Complete online check-in and get boarding pass ● Pre cruise activities ● Get to the embarkation port ● Check-in to the cruise and board ● Get to your state room ● Book dinner reservations and activities ● Enjoy the cruise and activities ● Excursions at ports of call ● Debarkation ● Post cruise activities ● Fly back ● Get home
  • 7. Digital Vision Discover Book Cruise Pre Cruise Planning Check In Board Ship Cruise Take Excursions Debark Create Memories Sensor Wearable TV API Layer Device Layer One App
  • 8. Architectural Challenges 1 How to Standardize Footprints on all ships and shore ? 3 How do guests have seamless experience on ship(s) and shore if we rely on batch process ? 2 How do we build on what we have today ? Same infrastructure on ship/shore API and Microservices Event driven Architecture with real time synchronization
  • 9. Ship-Shore Highway - Event enabling Fleet M icroservice sData stores IoT Devices System of Record M icroservice s Data stores IoT Devices System of Record Ship Shore Highway Event enablement, transmission, processing & Analytics across fleet
  • 10. SoR Ship-Shore Pattern API Gateway Micro Service Data Store System of Record Data Store System of Record Micro Service
  • 11. Change data Capture - Using Kafka Connect Web Call Center Travel Agent SQL Mirror Kafka Connect ConfluentKafka Kafka Shore Reservation SOR AWS Data Transformer Replicator Kafka Ship
  • 12. Broadcasting events - Using Streams Web Call Center Travel Agent IIDR Confluent Kafka Business Events & Change Data Reservation SOR AWS Kafka Streams Replicator Kafka
  • 13. Generating Business Events by Combining Topics Booking ID(pk) Guest ID Guest ID(pk) Name Address State Store State Store JOIN Guest ID Booking ID Name Address
  • 14. Generating Business Events by Combining Topics StreamsBuilder builder = new StreamsBuilder(); KStream<String, BookingDetails> guestBookings = builder.stream(guestBookingTopic) .selectKey((key, value) -> value.getGuestId()); KStream<String, GuestDetails> guestDetails = builder.stream(guestDetailsTopic); KStream<String, GuestBookingDetails> guestBookingAndDetails = guestBookings .join(guestDetails, (guestBooking, guestDetail) -> /* business event message */, JoinWindows.of(Duration.ofHours(10));
  • 15. Guest Bookings Stream Guest Details Stream Transparent Handling of Late Arrival Records SLIDING WINDOW JoinWindows.of(Duration.ofHours(10)) Late Arriving Record Event 1Event 2 Event 1Event 2 Event 12 Event 13 Event 13 Event 14 Event 14 Event 15
  • 16. Transparent Handling of Late Arrival Records Guest Bookings Stream Guest Details Stream SLIDING WINDOW Grace Period set to: JoinWindows.of(Duration.ofHours(10)).grace(Duration.ofHours(24))) Event 1Event 2 Event 1Event 2 Event 12 Event 13 Event 13 Event 14 Event 14 Event 15
  • 17. Transparent Handling of Late Arrival Records StreamsBuilder builder = new StreamsBuilder(); KStream<String, BookingDetails> guestBookings = builder.stream(guestBookingTopic) .selectKey((key, value) -> value.getGuestId()); KStream<String, GuestDetails> guestDetails = builder.stream(guestDetailsTopic); KStream<String, GuestBookingDetails> guestBookingAndDetails = guestBookings .join(guestDetails, (guestBooking, guestDetail) -> /* business event message */, JoinWindows.of(Duration.ofHours(10) .grace(Duration.ofHours(24)) );
  • 18. Consecutive Joins on Multiple Topics Booking ID Guest ID Guest ID Name Address State Store State Store JOIN Guest ID Purchase ID Intermediate State Store
  • 19. Consecutive Joins on Multiple Topics Booking ID Guest ID Guest ID Name Address State Store State Store JOIN Guest ID Purchase ID Intermedi ate Store State Store JOIN Guest ID Booking ID Purchase ID Name Address
  • 20. Transparent Handling of Late Arrival Records StreamsBuilder builder = new StreamsBuilder(); KStream<String, BookingDetails> guestBookings = builder.stream(guestBookingTopic) .selectKey((key, value) -> value.getGuestId()); KStream<String, PurchaseDetails> guestPurchases = builder.stream(guestPurchasesTopic); .selectKey((key, value) -> value.getGuestId()); KStream<String, GuestDetails> guestDetails = builder.stream(guestDetailsTopic); KStream<String, GuestBookingDetails> guestBookingAndDetails = guestBookings .join(guestDetails, (guestBooking, guestDetail) -> /* business event message with booking id and guest details */, JoinWindows.of(Duration.ofHours(10) .join(guestPurchases, (guestBookingDetail,guestPurchase) -> /* business event message with guest details, booking and purchase details*/, JoinWindows.of(Duration.ofHours(10)));
  • 21. Ensuring Streaming reliability - Graphite/Grafana Kafka Stream App JMX Graphite Grafana ● Consumer Lag to detect surges ● Idle time threshold to predict Thread health ● Bytes Received in last window indicating Kafka broker issues Lack of activity indicate either broker failure or app failure
  • 22. Ensuring Data Quality - Apache Spark Apache Spark Apache Spark Minio incremental Mirroring 1 2 3 4 5
  • 23. Next Steps - Interactive Queries Instance 1 Instance 2 Instance 3 GUEST API Local Kafka State Store Local Kafka State Store Local Kafka State Store host1:4047 host2:5047 host3:4460 Exposing RPC endpoint and information about its local state store Kafka Cluster
  • 24. Summary ● Real time guest information synchronization across ship and shore was possible with kafka, connect and replicators ● Kafka streams and IIDR helped to reduce the latency in processing the CDC ● Isolate critical connectors into their own connect cluster to reduce risk ● Order guarantee is easier to achieve with streams than connectors. ● Invest in domain driven design ● Include legacy dependencies in critical path for planning feature delivery.
  • 25. More Information Ram Indukuri ram@knoldus.com Himani Arora himani@knoldus.com Suresh Mulukuladu smulukuladu@rccl.com For more information Blog: https://blog.knoldus.com/join-semantics-kafka-streams/ Git Samples: https://github.com/knoldus/