SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
Reacting to
an Event-Driven world
© 2020 IBM Corporation
Kate Stanley and Grace Jansen
IBM Event Streams
Let’s get some coffee…
© 2020 IBM Corporation
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Coffee Lovers
HTTP
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Coffee Shop
Barista
Barista
Board
Coffee Lovers
Coffee Lovers
HTTP
Orders,
Queue
HTTP
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams© 2020 IBM Corporation
Q: Is your coffee shop non-blocking and
highly responsive?
IBM Event Streams© 2020 IBM Corporation
Q: Is your microservice system non-
blocking and highly responsive?
IBM Event Streams© 2020 IBM Corporation
Q: Is your microservice system non-
blocking and highly responsive?
A: Yes I’m using Kafka!
IBM Event Streams© 2020 IBM Corporation
Q: Is your microservice system non-
blocking and highly responsive?
A: Yes I’m using Kafka!
IBM Event Streams
Building reactive
systems
© 2020 IBM Corporation
IBM Event Streams
Reactive Manifesto
© 2020 IBM Corporation
IBM Event Streams
Message-Driven
Reactive Manifesto
© 2020 IBM Corporation
IBM Event Streams
Events
“A signal emitted by a component upon
reaching a given state.”
© 2020 IBM Corporation
A message can contain an encoded event in
its payload.
Messages
“An item of data sent to a specific location.”
IBM Event Streams© 2020 IBM Corporation
Apache Kafka is an open source, distributed
streaming platform
Publish and subscribe to streams of
records
Store records in durable way
Process streams of records as they
occur
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Board
Coffee Lovers
Orders,
Queue
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Board
Coffee Lovers
Orders,
Queue
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Board
Coffee Lovers
Orders,
Queue
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams
Elastic
Message-Driven
Reactive Manifesto
© 2020 IBM Corporation
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Board
Coffee Lovers
Orders,
Queue
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Board
Coffee Lovers
Orders,
Queue
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams
Barista Example:
© 2020 IBM Corporation
Coffee Shop
Barista
Board
Coffee Lovers
Orders,
Queue
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
IBM Event Streams
ResilientElastic
Message-Driven
Reactive Manifesto
© 2020 IBM Corporation
IBM Event Streams
ResilientElastic
Responsive
Message-Driven
Reactive Manifesto
© 2020 IBM Corporation
IBM Event Streams
ResilientElastic
Responsive
Message-Driven
Reactive Manifesto
© 2020 IBM Corporation
IBM Event Streams
How do we make a highly responsive app?
Microservice 1
© 2020 IBM Corporation
Microservice 2
Microservice 3
IBM Event Streams
How do we make a highly responsive app?
Microservice 1
© 2020 IBM Corporation
Microservice 2
Microservice 3
Reactive
Architecture
Patterns
IBM Event Streams
How do we make a highly responsive app?
Microservice 1
© 2020 IBM Corporation
Microservice 2
Microservice 3
Futures
Reactive Streams
Libraries
Futures
Reactive Streams
Libraries
Futures
Reactive Streams
Libraries
Reactive
Programming
IBM Event Streams
Integrating reactively
with Kafka
© 2020 IBM Corporation
IBM Event Streams
Reactive features of Kafka
© 2020 IBM Corporation
Consumer
offsets
Consumer
groups
Replication
Resiliency Elasticity
Stream history
Partitions
Cruise control
IBM Event Streams
Reactive Programming
© 2020 IBM Corporation
A subset of asynchronous programming and a paradigm where the
availability of new information drives the logic forward rather than
having control flow driven by a thread-of-execution.
IBM Event Streams© 2020 IBM Corporation
IBM Event Streams
send(record)
App code Kafka client
Kafka Producer
© 2020 IBM Corporation
buffer
IBM Event Streams
send(record)
App code Kafka client
Kafka Producer
© 2020 IBM Corporation
buffer
IBM Event Streams
send(record)
App code Kafka client
Kafka Producer
© 2020 IBM Corporation
buffer
java.util.concurrent.Future
IBM Event Streams
send(record)
App code Kafka client
Kafka Producer
© 2020 IBM Corporation
buffer
java.util.concurrent.Future
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code Kafka client
process()
< max.poll.interval.ms
IBM Event Streams
Kafka Consumer
© 2020 IBM Corporation
poll()
App code
process()
process()
process()
process()
IBM Event Streams
Reactive Streams is a standard and specification for
stream-oriented libraries for the JVM that..
© 2020 IBM Corporation
…process a potentially unbounded
number of elements in sequence…
…asynchronously passing elements
between components…
…with mandatory non-blocking
backpressure.
App
IBM Event Streams
Reactive Streams is a standard and specification for
stream-oriented libraries for the JVM that..
© 2020 IBM Corporation
…process a potentially unbounded
number of elements in sequence…
…asynchronously passing elements
between components…
…with mandatory non-blocking
backpressure.
App
…
IBM Event Streams
Reactive Streams is a standard and specification for
stream-oriented libraries for the JVM that..
© 2020 IBM Corporation
…process a potentially unbounded
number of elements in sequence…
…asynchronously passing elements
between components…
…with mandatory non-blocking
backpressure.
App
IBM Event Streams
Reactive Streams is a standard and specification for
stream-oriented libraries for the JVM that..
© 2020 IBM Corporation
…process a potentially unbounded
number of elements in sequence…
…asynchronously passing elements
between components…
…with mandatory non-blocking
backpressure.
App
IBM Event Streams
Reactive Frameworks for
Kafka
Alpakka Kafka Connector
MicroProfile Reactive Messaging
Vert.x Kafka Client
© 2020 IBM Corporation
IBM Event Streams
MicroProfile 3.3 Stack
© 2020 IBM Corporation
Reactive Streams
Operators 1.1
GraphQL
1.0
Standalone Projects
JSON-B 1.0JSON-P 1.1CDI 2.0
Config 1.4
Fault
Tolerance 2.1
JWT
Propagation
1.1
Health
Check 2.2
Metrics 2.3
Open Tracing
1.3
Open API 1.1
JAX-RS 2.1 Rest Client 1.4
Reactive
Messaging 1.0
Context
Propagation
1.0
Reactive
Streams
Not a MicroProfile spec
IBM Event Streams
MicroProfile Reactive Messaging API
© 2020 IBM Corporation
IBM Event Streams
Alpakka Kafka Connector API
© 2020 IBM Corporation
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
AppApp
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Request
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Push-mode
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Push-mode
Poll
IBM Event Streams
App
Publisher SubscriberProcessor
Backpressure in Reactive
Streams
© 2020 IBM Corporation
Poll
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Poll
Pause
Backpressure
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Poll
Pause
Pull-mode
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Poll
Pause
Request
Pull-mode
IBM Event Streams
Backpressure in Reactive
Streams
© 2020 IBM Corporation
App
Publisher SubscriberProcessor
Pull-mode
Poll
Resume
IBM Event Streams© 2020 IBM Corporation
https://www.lightbend.com/blog/alpakka-kafka-flow-control-optimizations
https://issues.apache.org/jira/browse/KAFKA-7548
IBM Event Streams
Vert.x Demo App
© 2020 IBM Corporation
IBM Event Streams
Eclipse Vert.x
© 2020 IBM Corporation
IBM Event Streams
Demo app
© 2020 IBM Corporation
https://github.com/ibm-messaging/kafka-java-vertx-starter
Vert.x app
produce
consume
IBM Event Streams
Demo app
© 2020 IBM Corporation
Vert.x app
websocket
produce
consume
https://github.com/ibm-messaging/kafka-java-vertx-starter
IBM Event Streams© 2020 IBM Corporation
IBM Event Streams© 2020 IBM Corporation
https://github.com/ibm-messaging/kafka-java-vertx-starter
IBM Event Streams© 2020 IBM Corporation
ibm.biz/ExperiencesWritingAReactiveKafkaApp
IBM Event Streams
Summary
Non-reactive + Kafka != reactive
Consider Kafka configuration for the best
reactive system
The open-source reactive community is on
hand to help!
© 2020 IBM Corporation
IBM Event Streams
Reactive Systems Explained
© 2020 IBM Corporation
ibm.biz/ReactiveReport
IBM Event Streams
MicroProfile Reactive Messaging
Guide
© 2020 IBM Corporation
ibm.biz/ReactiveMessagingGuide
IBM Event Streams
IBM Event Streams
Apache Kafka for the enterprise
© 2020 IBM Corporation
ibm.biz/aboutEventStreams
Powerful Ops Tooling
Award Winning User Experience
Connector Catalog
Support you can Trust
Unrivalled MQ connectivity
Schema Registry
Geo-replication for DR
Thank you
Grace Jansen | @gracejansen27
Kate Stanley | @katestanley91
© 2020 IBM Corporation IBM Event Streams: ibm.biz/aboutEventStreams
Reactive resources:
https://www.reactivemanifesto.org
https://ibm.biz/GettingStartedWithReactive
Getting started with Kafka:
https://kafka.apache.org/quickstart
https://strimzi.io
Reactive Kafka libraries
https://vertx.io/docs/vertx-kafka-client/java/
https://github.com/eclipse/microprofile-reactive-
messaging
https://projectreactor.io/docs/kafka
https://github.com/akka/alpakka-kafka

Contenu connexe

Tendances

Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
Kai Wähner
 
Unleashing Apache Kafka and TensorFlow in Hybrid Cloud Architectures
Unleashing Apache Kafka and TensorFlow in Hybrid Cloud ArchitecturesUnleashing Apache Kafka and TensorFlow in Hybrid Cloud Architectures
Unleashing Apache Kafka and TensorFlow in Hybrid Cloud Architectures
Kai Wähner
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
HostedbyConfluent
 
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to MicroservicesExpress Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
confluent
 
Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...
Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...
Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...
confluent
 

Tendances (20)

Event streaming: A paradigm shift in enterprise software architecture
Event streaming: A paradigm shift in enterprise software architectureEvent streaming: A paradigm shift in enterprise software architecture
Event streaming: A paradigm shift in enterprise software architecture
 
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...
 
Bridge to the Cloud: Using Apache Kafka to Migrate to AWS
Bridge to the Cloud: Using Apache Kafka to Migrate to AWSBridge to the Cloud: Using Apache Kafka to Migrate to AWS
Bridge to the Cloud: Using Apache Kafka to Migrate to AWS
 
스타트업을 위한 Confluent 세미나
스타트업을 위한 Confluent 세미나스타트업을 위한 Confluent 세미나
스타트업을 위한 Confluent 세미나
 
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
 
Apache Kafka as Event Streaming Platform for Microservice Architectures
Apache Kafka as Event Streaming Platform for Microservice ArchitecturesApache Kafka as Event Streaming Platform for Microservice Architectures
Apache Kafka as Event Streaming Platform for Microservice Architectures
 
Should we manage events like APIs? | Kim Clark, IBM
Should we manage events like APIs? | Kim Clark, IBMShould we manage events like APIs? | Kim Clark, IBM
Should we manage events like APIs? | Kim Clark, IBM
 
The Enterprise Service Bus is Dead! Long live the Enterprise Service Bus, Rim...
The Enterprise Service Bus is Dead! Long live the Enterprise Service Bus, Rim...The Enterprise Service Bus is Dead! Long live the Enterprise Service Bus, Rim...
The Enterprise Service Bus is Dead! Long live the Enterprise Service Bus, Rim...
 
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, GoogleHybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
 
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
 
Unleashing Apache Kafka and TensorFlow in Hybrid Cloud Architectures
Unleashing Apache Kafka and TensorFlow in Hybrid Cloud ArchitecturesUnleashing Apache Kafka and TensorFlow in Hybrid Cloud Architectures
Unleashing Apache Kafka and TensorFlow in Hybrid Cloud Architectures
 
Confluent Platform 5.5 + Apache Kafka 2.5 => New Features (JSON Schema, Proto...
Confluent Platform 5.5 + Apache Kafka 2.5 => New Features (JSON Schema, Proto...Confluent Platform 5.5 + Apache Kafka 2.5 => New Features (JSON Schema, Proto...
Confluent Platform 5.5 + Apache Kafka 2.5 => New Features (JSON Schema, Proto...
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
 
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to MicroservicesExpress Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
 
From legacy systems to microservices and back | Andera Gioia, Quantyca
From legacy systems to microservices and back | Andera Gioia, QuantycaFrom legacy systems to microservices and back | Andera Gioia, Quantyca
From legacy systems to microservices and back | Andera Gioia, Quantyca
 
Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...
Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...
Keeping Your Data Close and Your Caches Hotter (Ricardo Ferreira, Confluent) ...
 
Apache Kafka for Smart Grid, Utilities and Energy Production
Apache Kafka for Smart Grid, Utilities and Energy ProductionApache Kafka for Smart Grid, Utilities and Energy Production
Apache Kafka for Smart Grid, Utilities and Energy Production
 
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQCloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
Cloud native Kafka | Sascha Holtbruegge and Margaretha Erber, HiveMQ
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM Garage
 
Stream processing for the masses with beam, python and flink
Stream processing for the masses with beam, python and flink Stream processing for the masses with beam, python and flink
Stream processing for the masses with beam, python and flink
 

Similaire à Reacting to an Event-Driven World (Kate Stanley & Grace Jansen, IBM) Kafka Summit 2020

DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
Amazon Web Services
 

Similaire à Reacting to an Event-Driven World (Kate Stanley & Grace Jansen, IBM) Kafka Summit 2020 (20)

JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven World
 
GIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven worldGIDS Architecture Live: Reacting to an event-driven world
GIDS Architecture Live: Reacting to an event-driven world
 
Virtual Meetup Sweden - Reacting to an event driven world
Virtual Meetup Sweden - Reacting to an event driven worldVirtual Meetup Sweden - Reacting to an event driven world
Virtual Meetup Sweden - Reacting to an event driven world
 
VJUG - Reacting to an event driven world
VJUG - Reacting to an event driven worldVJUG - Reacting to an event driven world
VJUG - Reacting to an event driven world
 
Jfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven worldJfokus - Reacting to an event-driven world
Jfokus - Reacting to an event-driven world
 
JSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven worldJSpring Virtual 2020 - Reacting to an event-driven world
JSpring Virtual 2020 - Reacting to an event-driven world
 
DevNexus - Reacting to an event driven world
DevNexus - Reacting to an event driven worldDevNexus - Reacting to an event driven world
DevNexus - Reacting to an event driven world
 
JavaBin: Reacting to an event driven world
 JavaBin: Reacting to an event driven world JavaBin: Reacting to an event driven world
JavaBin: Reacting to an event driven world
 
Developer Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldDeveloper Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven world
 
FrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with SwiftFrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with Swift
 
CICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfCICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdf
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
Serverless applications with AWS
Serverless applications with AWSServerless applications with AWS
Serverless applications with AWS
 
AWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the CloudAWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the Cloud
 
AWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the CloudAWS Jozi Meetup Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the Cloud
 
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud[CPT DevOps Meetup] Developing Modern Applications in the Cloud
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
 
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
Firecracker: Secure and fast microVMs for serverless computing - SEP316 - AWS...
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 

Plus de confluent

Plus de confluent (20)

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
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Reacting to an Event-Driven World (Kate Stanley & Grace Jansen, IBM) Kafka Summit 2020

  • 1. Reacting to an Event-Driven world © 2020 IBM Corporation Kate Stanley and Grace Jansen
  • 2. IBM Event Streams Let’s get some coffee… © 2020 IBM Corporation
  • 3. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Coffee Lovers HTTP HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo
  • 4. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Coffee Shop Barista Barista Board Coffee Lovers Coffee Lovers HTTP Orders, Queue HTTP HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 5. IBM Event Streams© 2020 IBM Corporation Q: Is your coffee shop non-blocking and highly responsive?
  • 6. IBM Event Streams© 2020 IBM Corporation Q: Is your microservice system non- blocking and highly responsive?
  • 7. IBM Event Streams© 2020 IBM Corporation Q: Is your microservice system non- blocking and highly responsive? A: Yes I’m using Kafka!
  • 8. IBM Event Streams© 2020 IBM Corporation Q: Is your microservice system non- blocking and highly responsive? A: Yes I’m using Kafka!
  • 9. IBM Event Streams Building reactive systems © 2020 IBM Corporation
  • 10. IBM Event Streams Reactive Manifesto © 2020 IBM Corporation
  • 11. IBM Event Streams Message-Driven Reactive Manifesto © 2020 IBM Corporation
  • 12. IBM Event Streams Events “A signal emitted by a component upon reaching a given state.” © 2020 IBM Corporation A message can contain an encoded event in its payload. Messages “An item of data sent to a specific location.”
  • 13. IBM Event Streams© 2020 IBM Corporation Apache Kafka is an open source, distributed streaming platform Publish and subscribe to streams of records Store records in durable way Process streams of records as they occur
  • 14. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Board Coffee Lovers Orders, Queue HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 15. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Board Coffee Lovers Orders, Queue HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 16. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Board Coffee Lovers Orders, Queue HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 17. IBM Event Streams Elastic Message-Driven Reactive Manifesto © 2020 IBM Corporation
  • 18. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Board Coffee Lovers Orders, Queue HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 19. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Board Coffee Lovers Orders, Queue HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 20. IBM Event Streams Barista Example: © 2020 IBM Corporation Coffee Shop Barista Board Coffee Lovers Orders, Queue HTTP https://github.com/cescoffier/quarkus-coffeeshop-demo Event Backbone
  • 24. IBM Event Streams How do we make a highly responsive app? Microservice 1 © 2020 IBM Corporation Microservice 2 Microservice 3
  • 25. IBM Event Streams How do we make a highly responsive app? Microservice 1 © 2020 IBM Corporation Microservice 2 Microservice 3 Reactive Architecture Patterns
  • 26. IBM Event Streams How do we make a highly responsive app? Microservice 1 © 2020 IBM Corporation Microservice 2 Microservice 3 Futures Reactive Streams Libraries Futures Reactive Streams Libraries Futures Reactive Streams Libraries Reactive Programming
  • 27. IBM Event Streams Integrating reactively with Kafka © 2020 IBM Corporation
  • 28. IBM Event Streams Reactive features of Kafka © 2020 IBM Corporation Consumer offsets Consumer groups Replication Resiliency Elasticity Stream history Partitions Cruise control
  • 29. IBM Event Streams Reactive Programming © 2020 IBM Corporation A subset of asynchronous programming and a paradigm where the availability of new information drives the logic forward rather than having control flow driven by a thread-of-execution.
  • 30. IBM Event Streams© 2020 IBM Corporation
  • 31. IBM Event Streams send(record) App code Kafka client Kafka Producer © 2020 IBM Corporation buffer
  • 32. IBM Event Streams send(record) App code Kafka client Kafka Producer © 2020 IBM Corporation buffer
  • 33. IBM Event Streams send(record) App code Kafka client Kafka Producer © 2020 IBM Corporation buffer java.util.concurrent.Future
  • 34. IBM Event Streams send(record) App code Kafka client Kafka Producer © 2020 IBM Corporation buffer java.util.concurrent.Future
  • 35. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 36. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 37. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 38. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 39. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 40. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 41. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process()
  • 42. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code Kafka client process() < max.poll.interval.ms
  • 43. IBM Event Streams Kafka Consumer © 2020 IBM Corporation poll() App code process() process() process() process()
  • 44. IBM Event Streams Reactive Streams is a standard and specification for stream-oriented libraries for the JVM that.. © 2020 IBM Corporation …process a potentially unbounded number of elements in sequence… …asynchronously passing elements between components… …with mandatory non-blocking backpressure. App
  • 45. IBM Event Streams Reactive Streams is a standard and specification for stream-oriented libraries for the JVM that.. © 2020 IBM Corporation …process a potentially unbounded number of elements in sequence… …asynchronously passing elements between components… …with mandatory non-blocking backpressure. App …
  • 46. IBM Event Streams Reactive Streams is a standard and specification for stream-oriented libraries for the JVM that.. © 2020 IBM Corporation …process a potentially unbounded number of elements in sequence… …asynchronously passing elements between components… …with mandatory non-blocking backpressure. App
  • 47. IBM Event Streams Reactive Streams is a standard and specification for stream-oriented libraries for the JVM that.. © 2020 IBM Corporation …process a potentially unbounded number of elements in sequence… …asynchronously passing elements between components… …with mandatory non-blocking backpressure. App
  • 48. IBM Event Streams Reactive Frameworks for Kafka Alpakka Kafka Connector MicroProfile Reactive Messaging Vert.x Kafka Client © 2020 IBM Corporation
  • 49. IBM Event Streams MicroProfile 3.3 Stack © 2020 IBM Corporation Reactive Streams Operators 1.1 GraphQL 1.0 Standalone Projects JSON-B 1.0JSON-P 1.1CDI 2.0 Config 1.4 Fault Tolerance 2.1 JWT Propagation 1.1 Health Check 2.2 Metrics 2.3 Open Tracing 1.3 Open API 1.1 JAX-RS 2.1 Rest Client 1.4 Reactive Messaging 1.0 Context Propagation 1.0 Reactive Streams Not a MicroProfile spec
  • 50. IBM Event Streams MicroProfile Reactive Messaging API © 2020 IBM Corporation
  • 51. IBM Event Streams Alpakka Kafka Connector API © 2020 IBM Corporation
  • 52. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation AppApp
  • 53. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor
  • 54. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Request
  • 55. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Push-mode
  • 56. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Push-mode Poll
  • 57. IBM Event Streams App Publisher SubscriberProcessor Backpressure in Reactive Streams © 2020 IBM Corporation Poll
  • 58. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Poll Pause Backpressure
  • 59. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Poll Pause Pull-mode
  • 60. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Poll Pause Request Pull-mode
  • 61. IBM Event Streams Backpressure in Reactive Streams © 2020 IBM Corporation App Publisher SubscriberProcessor Pull-mode Poll Resume
  • 62. IBM Event Streams© 2020 IBM Corporation https://www.lightbend.com/blog/alpakka-kafka-flow-control-optimizations https://issues.apache.org/jira/browse/KAFKA-7548
  • 63. IBM Event Streams Vert.x Demo App © 2020 IBM Corporation
  • 64. IBM Event Streams Eclipse Vert.x © 2020 IBM Corporation
  • 65. IBM Event Streams Demo app © 2020 IBM Corporation https://github.com/ibm-messaging/kafka-java-vertx-starter Vert.x app produce consume
  • 66. IBM Event Streams Demo app © 2020 IBM Corporation Vert.x app websocket produce consume https://github.com/ibm-messaging/kafka-java-vertx-starter
  • 67. IBM Event Streams© 2020 IBM Corporation
  • 68. IBM Event Streams© 2020 IBM Corporation https://github.com/ibm-messaging/kafka-java-vertx-starter
  • 69. IBM Event Streams© 2020 IBM Corporation ibm.biz/ExperiencesWritingAReactiveKafkaApp
  • 70. IBM Event Streams Summary Non-reactive + Kafka != reactive Consider Kafka configuration for the best reactive system The open-source reactive community is on hand to help! © 2020 IBM Corporation
  • 71. IBM Event Streams Reactive Systems Explained © 2020 IBM Corporation ibm.biz/ReactiveReport
  • 72. IBM Event Streams MicroProfile Reactive Messaging Guide © 2020 IBM Corporation ibm.biz/ReactiveMessagingGuide
  • 73. IBM Event Streams IBM Event Streams Apache Kafka for the enterprise © 2020 IBM Corporation ibm.biz/aboutEventStreams Powerful Ops Tooling Award Winning User Experience Connector Catalog Support you can Trust Unrivalled MQ connectivity Schema Registry Geo-replication for DR
  • 74. Thank you Grace Jansen | @gracejansen27 Kate Stanley | @katestanley91 © 2020 IBM Corporation IBM Event Streams: ibm.biz/aboutEventStreams Reactive resources: https://www.reactivemanifesto.org https://ibm.biz/GettingStartedWithReactive Getting started with Kafka: https://kafka.apache.org/quickstart https://strimzi.io Reactive Kafka libraries https://vertx.io/docs/vertx-kafka-client/java/ https://github.com/eclipse/microprofile-reactive- messaging https://projectreactor.io/docs/kafka https://github.com/akka/alpakka-kafka