SlideShare a Scribd company logo
Reactive Applications on Apache
Tomcat and Servlet 3.1 Containers
Violeta Georgieva
@violeta_g_g
1
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Violeta Georgieva
• Pivotal
• Tomcat committer
• RM for Tomcat7/8.0
• Spring Framework contributor
• Reactor Netty committer
2
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
3
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Use Cases
4
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Use Cases
5
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Use Cases
6
Network Latency
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Use Cases
7
Processing Latency
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Demo - Blocking
8
∞
Stock
Quotes
Trading Service
Load Generator
Browser
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Synchronous Processing/Blocking
9
Client App A App B
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Synchronous Processing/Blocking
10
Client App A App B
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Blocking
11
Client App A App BThread
Pool
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Blocking
12
Client App A App BThread
Pool
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Blocking
13
Client App A App BThread
Pool
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Read
14
Container App
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Read
15
Container App
onDataAvailable
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Read
16
Container App
onDataAvailable
read
isReady?
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Read
17
Container App
onDataAvailable
read
isReady?
read
isReady?
false
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Read
18
Container App
onDataAvailable
read
isReady?
read
isReady?
false
onDataAvailable
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Write
19
Container App
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Write
20
Container App
onWritePossible
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Write
21
Container App
onWritePossible
write
isReady?
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Write
22
Container App
onWritePossible
write
isReady?
write
isReady?
false
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Asynchronous Processing/Non-Blocking
Write
23
Container App
onWritePossible
write
isReady?
write
isReady?
false
onWritePossible
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Reactive Streams
• Publisher
• Subscriber
• Subscription
• Processor
24
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Reactive Streams
25
Publisher Subscriber
subscribe
onSubscribe
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Reactive Streams
26
Publisher Subscriber
subscribe
onSubscribe
request(2)
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Reactive Streams
27
Publisher Subscriber
subscribe
onSubscribe
request(2)
onNext
onNext
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Reactive Streams
28
Publisher Subscriber
subscribe
onSubscribe
request(2)
onNext
onNext
request(1)
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Reactive Streams
29
Publisher Subscriber
subscribe
onSubscribe
request(2)
onNext
onNext
request(1)
onNext
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
30
Container Read Listener Read Publisher App
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
31
Container Read Listener Read Publisher App
onSubscribe
subscribe
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
32
Container Read Listener Read Publisher App
onSubscribe
subscribe
request
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
33
Container Read Listener Read Publisher App
onSubscribe
subscribe
requestisReady?
read
onNext(data)
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
34
Container Read Listener Read Publisher App
onSubscribe
subscribe
requestisReady?
read
onNext(data)
request
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
35
Container Read Listener Read Publisher App
onSubscribe
subscribe
requestisReady?
read
onNext(data)
requestisReady?
false
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
36
Container Read Listener Read Publisher App
onSubscribe
subscribe
requestisReady?
read
onNext(data)
requestisReady?
false
onDataAvailabl
e
onDataAvailabl
e
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Read
37
Container Read Listener Read Publisher App
onSubscribe
subscribe
requestisReady?
read
onNext(data)
requestisReady?
false
onDataAvailabl
e
onDataAvailabl
e
onNext(data)
read
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
38
Container Write Listener Write
Subscriber
App
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
39
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
40
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
request
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
41
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
request
isReady?
write
onNext(data)
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
42
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
request
isReady?
write
onNext(data)
request
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
43
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
request
isReady?
write
onNext(data)
request
isReady?
false
onNext(data)
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
44
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
request
isReady?
write
onNext(data)
request
isReady?
false
onNext(data)
onWritePossible onWritePossible
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Servlet 3.1/Reactive Streams Bridge - Write
45
Container Write Listener Write
Subscriber
App
subscribe
onSubscribe
request
isReady?
write
onNext(data)
request
isReady?
false
onNext(data)
onWritePossible onWritePossible
write
request
Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Demo – Non Blocking
46
Load Generator
∞
Stock
Quotes
Trading Service
Browser
Thank You
http://github.com/violetagg/s1p2017-demo
47
#springone@s1p

More Related Content

PDF
New in Spring Framework 5.0: Functional Web Framework
PDF
Next Generation OAuth Support with Spring Security 5.0
PDF
Reactive frontends with RxJS and Angular
PDF
Migrating to Angular 5 for Spring Developers
PDF
Migrating to Angular 4 for Spring Developers
PPTX
What's New in Spring for Apache Kafka 2.0
PPTX
Spring Framework 5.0: Hidden Gems
PPTX
Latency analysis for your microservices using Spring Cloud & Zipkin
New in Spring Framework 5.0: Functional Web Framework
Next Generation OAuth Support with Spring Security 5.0
Reactive frontends with RxJS and Angular
Migrating to Angular 5 for Spring Developers
Migrating to Angular 4 for Spring Developers
What's New in Spring for Apache Kafka 2.0
Spring Framework 5.0: Hidden Gems
Latency analysis for your microservices using Spring Cloud & Zipkin

What's hot (11)

PDF
Marcin Grzejszczak - Contract Tests in the Enterprise
PDF
Better Than BASH: Scripting Kotlin
PPTX
Crossing the CI/CD/DevOps Chasm
PDF
ChromeとAndroidの過去・現在・未来
PDF
riffing on Knative - Scott Andrews
PPTX
Consumer Driven Contracts and Your Microservice Architecture
PDF
Containers Were Never Your End State
PDF
Microservices with Swagger, Flask and Docker
PDF
Square Pegs, Square Holes: CI/CD That Fits
PDF
JHipster for Spring Boot webinar
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Marcin Grzejszczak - Contract Tests in the Enterprise
Better Than BASH: Scripting Kotlin
Crossing the CI/CD/DevOps Chasm
ChromeとAndroidの過去・現在・未来
riffing on Knative - Scott Andrews
Consumer Driven Contracts and Your Microservice Architecture
Containers Were Never Your End State
Microservices with Swagger, Flask and Docker
Square Pegs, Square Holes: CI/CD That Fits
JHipster for Spring Boot webinar
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Ad

Similar to Reactive Applications on Apache Tomcat and Servlet 3.1 containers (20)

PDF
Intro To Reactive Programming
PDF
Intro to Reactive Programming
PDF
Reactive Web Applications
PDF
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
PPTX
Reactive applications tools of the trade huff po
PDF
Reactor 3.0, a reactive foundation for java 8 and Spring
PPTX
From Streams to Reactive Streams
PDF
Introduction to Reactive Streams and Reactor 2.5
PPTX
Going Reactive in Java with Typesafe Reactive Platform
PDF
Springone2gx 2014 Reactive Streams and Reactor
PDF
Reactive Applications
PDF
Reactive applications Linux Day 2013
PDF
Reactive applications
PPT
PushNotify:push server application
PDF
Synchronous Commands over Apache Kafka (Neil Buesing, Object Partners, Inc) K...
PPTX
WebAppseqweqweqweqwewqeqweqweReImagined.pptx
PDF
What is Reactive programming?
PPTX
Designing, Implementing, and Using Reactive APIs
PDF
Reactive Spring Framework 5
PPTX
Spring reactor
Intro To Reactive Programming
Intro to Reactive Programming
Reactive Web Applications
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Reactive applications tools of the trade huff po
Reactor 3.0, a reactive foundation for java 8 and Spring
From Streams to Reactive Streams
Introduction to Reactive Streams and Reactor 2.5
Going Reactive in Java with Typesafe Reactive Platform
Springone2gx 2014 Reactive Streams and Reactor
Reactive Applications
Reactive applications Linux Day 2013
Reactive applications
PushNotify:push server application
Synchronous Commands over Apache Kafka (Neil Buesing, Object Partners, Inc) K...
WebAppseqweqweqweqwewqeqweqweReImagined.pptx
What is Reactive programming?
Designing, Implementing, and Using Reactive APIs
Reactive Spring Framework 5
Spring reactor
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
cuic standard and advanced reporting.pdf
PPTX
Machine Learning_overview_presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Network Security Unit 5.pdf for BCA BBA.
Assigned Numbers - 2025 - Bluetooth® Document
A comparative analysis of optical character recognition models for extracting...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MIND Revenue Release Quarter 2 2025 Press Release
cuic standard and advanced reporting.pdf
Machine Learning_overview_presentation.pptx
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf

Reactive Applications on Apache Tomcat and Servlet 3.1 containers

  • 1. Reactive Applications on Apache Tomcat and Servlet 3.1 Containers Violeta Georgieva @violeta_g_g 1
  • 2. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Violeta Georgieva • Pivotal • Tomcat committer • RM for Tomcat7/8.0 • Spring Framework contributor • Reactor Netty committer 2
  • 3. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3
  • 4. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Use Cases 4
  • 5. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Use Cases 5
  • 6. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Use Cases 6 Network Latency
  • 7. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Use Cases 7 Processing Latency
  • 8. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo - Blocking 8 ∞ Stock Quotes Trading Service Load Generator Browser
  • 9. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Synchronous Processing/Blocking 9 Client App A App B
  • 10. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Synchronous Processing/Blocking 10 Client App A App B
  • 11. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Blocking 11 Client App A App BThread Pool
  • 12. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Blocking 12 Client App A App BThread Pool
  • 13. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Blocking 13 Client App A App BThread Pool
  • 14. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Read 14 Container App
  • 15. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Read 15 Container App onDataAvailable
  • 16. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Read 16 Container App onDataAvailable read isReady?
  • 17. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Read 17 Container App onDataAvailable read isReady? read isReady? false
  • 18. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Read 18 Container App onDataAvailable read isReady? read isReady? false onDataAvailable
  • 19. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Write 19 Container App
  • 20. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Write 20 Container App onWritePossible
  • 21. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Write 21 Container App onWritePossible write isReady?
  • 22. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Write 22 Container App onWritePossible write isReady? write isReady? false
  • 23. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Asynchronous Processing/Non-Blocking Write 23 Container App onWritePossible write isReady? write isReady? false onWritePossible
  • 24. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams • Publisher • Subscriber • Subscription • Processor 24
  • 25. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams 25 Publisher Subscriber subscribe onSubscribe
  • 26. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams 26 Publisher Subscriber subscribe onSubscribe request(2)
  • 27. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams 27 Publisher Subscriber subscribe onSubscribe request(2) onNext onNext
  • 28. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams 28 Publisher Subscriber subscribe onSubscribe request(2) onNext onNext request(1)
  • 29. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Reactive Streams 29 Publisher Subscriber subscribe onSubscribe request(2) onNext onNext request(1) onNext
  • 30. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 30 Container Read Listener Read Publisher App
  • 31. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 31 Container Read Listener Read Publisher App onSubscribe subscribe
  • 32. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 32 Container Read Listener Read Publisher App onSubscribe subscribe request
  • 33. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 33 Container Read Listener Read Publisher App onSubscribe subscribe requestisReady? read onNext(data)
  • 34. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 34 Container Read Listener Read Publisher App onSubscribe subscribe requestisReady? read onNext(data) request
  • 35. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 35 Container Read Listener Read Publisher App onSubscribe subscribe requestisReady? read onNext(data) requestisReady? false
  • 36. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 36 Container Read Listener Read Publisher App onSubscribe subscribe requestisReady? read onNext(data) requestisReady? false onDataAvailabl e onDataAvailabl e
  • 37. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Read 37 Container Read Listener Read Publisher App onSubscribe subscribe requestisReady? read onNext(data) requestisReady? false onDataAvailabl e onDataAvailabl e onNext(data) read
  • 38. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 38 Container Write Listener Write Subscriber App
  • 39. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 39 Container Write Listener Write Subscriber App subscribe onSubscribe
  • 40. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 40 Container Write Listener Write Subscriber App subscribe onSubscribe request
  • 41. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 41 Container Write Listener Write Subscriber App subscribe onSubscribe request isReady? write onNext(data)
  • 42. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 42 Container Write Listener Write Subscriber App subscribe onSubscribe request isReady? write onNext(data) request
  • 43. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 43 Container Write Listener Write Subscriber App subscribe onSubscribe request isReady? write onNext(data) request isReady? false onNext(data)
  • 44. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 44 Container Write Listener Write Subscriber App subscribe onSubscribe request isReady? write onNext(data) request isReady? false onNext(data) onWritePossible onWritePossible
  • 45. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Servlet 3.1/Reactive Streams Bridge - Write 45 Container Write Listener Write Subscriber App subscribe onSubscribe request isReady? write onNext(data) request isReady? false onNext(data) onWritePossible onWritePossible write request
  • 46. Unless otherwise indicated, these slides are © 2013 -2017 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo – Non Blocking 46 Load Generator ∞ Stock Quotes Trading Service Browser