SlideShare una empresa de Scribd logo
1 de 74
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 
[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
 
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
 
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
 

Más de confluent

Más 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
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

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