SlideShare a Scribd company logo
1 of 28
Reacting to the future of
application architecture
Grace Jansen
Developer Advocate
IBM
Twitter
@gracejansen27
Evolution of software
@gracejansen27
Bees and Software Link
@gracejansen27
Food Foraging
@gracejansen27
Long Live the Queen
@gracejansen27
Bees at War
@gracejansen27
Reactive Manifesto
ResilientElastic
Message-Driven
Responsive
@gracejansen27
Reactive Architecture, the future
of application architecture?
@gracejansen27
Building Reactive Systems
Microservice 2
Microservice 3
Microservice 1
@gracejansen27
Building Reactive Systems
Microservice 2
Microservice 3
Microservice 1
Futures
Libraries
Reactive
Streams
Futures
Libraries
Reactive
Streams
Futures
Libraries
Reactive
Streams
@gracejansen27
Building Reactive Systems
Microservice 2
Microservice 3
Microservice 1
Futures
Libraries
Reactive
Streams
Futures
Libraries
Reactive
Streams
Futures
Libraries
Reactive
Streams
Reactive
Programming
Reactive
Systems
@gracejansen27
Reactive Programming
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.
@gracejansen27
Reactive Programming Patterns
•Futures: a promise to hold the result of some operation once that
operation completes
•Reactive programming libraries: for composing asynchronous
and event-based programs. (e.g. RxJava, SmallRye Mutiny)
•Reactive Streams: a programming concept for handling
asynchronous data streams in a non-blocking manner while
backpressure to stream publishers
@gracejansen27
Reactive programming vs Reactive
systems
VS
@gracejansen27
How does reactive architecture
achieve this bee-haviour?
@gracejansen27
Event-Sourcing/CQRS
@gracejansen27
Sharding
@gracejansen27
Back Pressure
@gracejansen27
Circuit Breaking
@gracejansen27
High Availability / Eventual
Consistency
@gracejansen27
Reactive Frameworks/Toolkits
Project Reactor
@gracejansen27
Real World Example -Verizon
175M Visits/Month
50M Unique Visitors/Month
2.5 Billion Interactions/Year
88% Interactions are Digital
48% Digital Sales on Mobile Devices
Always Up For Iconic Launch
@gracejansen27
Real World Example
• Conversion rate UP by 1.6x (from 1.9% to 3.1%)
• Page response time improved from 7-10 seconds to 2-3 seconds
• Runs using 1/8th of Infrastructure
• Deployment time improved from 4-8 hours to 30 minutes
• Developers are 20-40% more productive
• Order completion improved from 41 minutes to 27 minutes
@gracejansen27
Reactive-Kafka starter app
https://github.com/ibm-messaging/kafka-java-vertx-starter
Vert.x app
websocket
produce
consume
Reactive-Kafka starter app
ibm.biz/ExperiencesWriting
AReactiveKafkaApp
Getting hands-on with Reactive
ibm.biz/reactive-java-labs
Reactive resources
General:
• ibm.biz/ReactiveReport
• ibm.biz/GettingStartedWithReactive
• ibm.biz/ReactiveProgrammingInterview
MicroProfile:
• ibm.biz/MicroProfileReactiveMessaging
• https://openliberty.io/guides/
Quarkus:
• ibm.biz/OpenShiftReactiveLabs
• ibm.biz/QuarkusReactiveJava
@gracejansen27
Thank You
Grace Jansen
IBM Developer Advocate
Twitter: @gracejansen27
LinkedIn: GraceJansen

More Related Content

What's hot

CodeCamp Bucharest - Reacting to the future of application architecture
CodeCamp Bucharest - Reacting to the future of application architectureCodeCamp Bucharest - Reacting to the future of application architecture
CodeCamp Bucharest - Reacting to the future of application architectureGrace Jansen
 
DevoxxBE - Reacting to the future of application architecture
DevoxxBE - Reacting to the future of application architectureDevoxxBE - Reacting to the future of application architecture
DevoxxBE - Reacting to the future of application architectureGrace Jansen
 
Securing Modern Applications: The Data Behind DevSecOps
Securing Modern Applications: The Data Behind DevSecOpsSecuring Modern Applications: The Data Behind DevSecOps
Securing Modern Applications: The Data Behind DevSecOpsEficode
 
Spring Microservices in Action, Second Edition
Spring Microservices in Action, Second EditionSpring Microservices in Action, Second Edition
Spring Microservices in Action, Second EditionManning Publications
 
Gibbering about git - managing your source code made easy
Gibbering about git - managing your source code made easyGibbering about git - managing your source code made easy
Gibbering about git - managing your source code made easyMadeleine Schönemann
 
Kafka on Kubernetes
Kafka on KubernetesKafka on Kubernetes
Kafka on KubernetesCloudOps2005
 

What's hot (6)

CodeCamp Bucharest - Reacting to the future of application architecture
CodeCamp Bucharest - Reacting to the future of application architectureCodeCamp Bucharest - Reacting to the future of application architecture
CodeCamp Bucharest - Reacting to the future of application architecture
 
DevoxxBE - Reacting to the future of application architecture
DevoxxBE - Reacting to the future of application architectureDevoxxBE - Reacting to the future of application architecture
DevoxxBE - Reacting to the future of application architecture
 
Securing Modern Applications: The Data Behind DevSecOps
Securing Modern Applications: The Data Behind DevSecOpsSecuring Modern Applications: The Data Behind DevSecOps
Securing Modern Applications: The Data Behind DevSecOps
 
Spring Microservices in Action, Second Edition
Spring Microservices in Action, Second EditionSpring Microservices in Action, Second Edition
Spring Microservices in Action, Second Edition
 
Gibbering about git - managing your source code made easy
Gibbering about git - managing your source code made easyGibbering about git - managing your source code made easy
Gibbering about git - managing your source code made easy
 
Kafka on Kubernetes
Kafka on KubernetesKafka on Kubernetes
Kafka on Kubernetes
 

Similar to AccentoDev - Reacting to the future of application architecture

CodeCamp Cluj Napoca - Reacting to the future of application architecture
CodeCamp Cluj Napoca - Reacting to the future of application architectureCodeCamp Cluj Napoca - Reacting to the future of application architecture
CodeCamp Cluj Napoca - Reacting to the future of application architectureGrace Jansen
 
JVMCon - Reacting to the future of application architecture
JVMCon - Reacting to the future of application architectureJVMCon - Reacting to the future of application architecture
JVMCon - Reacting to the future of application architectureGrace Jansen
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesRyan Baxter
 
Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...Edureka!
 
In the Eventual Consistency of Succeeding at Microservices
In the Eventual Consistency of Succeeding at MicroservicesIn the Eventual Consistency of Succeeding at Microservices
In the Eventual Consistency of Succeeding at MicroservicesKenny Bastani
 
Macro and micro aspects in RE for AOSE
Macro and micro aspects in RE for AOSEMacro and micro aspects in RE for AOSE
Macro and micro aspects in RE for AOSEEhsan Alirezaei
 
2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...
2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...
2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...Ambassador Labs
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice ContainerJamie (Taka) Wang
 
Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Jesper Nordström
 
Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...3gamma
 
Reactive Microservices with eclipse vert.x
Reactive Microservices with eclipse vert.xReactive Microservices with eclipse vert.x
Reactive Microservices with eclipse vert.xTiera Fann, MBA
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Tech Triveni
 
Containing your microservice sprawl
Containing your microservice sprawlContaining your microservice sprawl
Containing your microservice sprawlLibbySchulze
 
Offline First in React Native
Offline First in React NativeOffline First in React Native
Offline First in React NativeJosh Warwick
 
Modernizing IT with Microservices
Modernizing IT with MicroservicesModernizing IT with Microservices
Modernizing IT with MicroservicesLeanIX GmbH
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...Chris Richardson
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka EcosystemGuido Schmutz
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with QuarkusNiklas Heidloff
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Chris Richardson
 

Similar to AccentoDev - Reacting to the future of application architecture (20)

CodeCamp Cluj Napoca - Reacting to the future of application architecture
CodeCamp Cluj Napoca - Reacting to the future of application architectureCodeCamp Cluj Napoca - Reacting to the future of application architecture
CodeCamp Cluj Napoca - Reacting to the future of application architecture
 
JVMCon - Reacting to the future of application architecture
JVMCon - Reacting to the future of application architectureJVMCon - Reacting to the future of application architecture
JVMCon - Reacting to the future of application architecture
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To Microservices
 
Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...Microservices Interview Questions and Answers | Microservices Architecture Tr...
Microservices Interview Questions and Answers | Microservices Architecture Tr...
 
In the Eventual Consistency of Succeeding at Microservices
In the Eventual Consistency of Succeeding at MicroservicesIn the Eventual Consistency of Succeeding at Microservices
In the Eventual Consistency of Succeeding at Microservices
 
Macro and micro aspects in RE for AOSE
Macro and micro aspects in RE for AOSEMacro and micro aspects in RE for AOSE
Macro and micro aspects in RE for AOSE
 
2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...
2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...
2017 Microservices Practitioner Virtual Summit - Opening Keynote: Trends in M...
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...
 
Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...
 
Reactive Microservices with eclipse vert.x
Reactive Microservices with eclipse vert.xReactive Microservices with eclipse vert.x
Reactive Microservices with eclipse vert.x
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?
 
Spring Webflux
Spring WebfluxSpring Webflux
Spring Webflux
 
Containing your microservice sprawl
Containing your microservice sprawlContaining your microservice sprawl
Containing your microservice sprawl
 
Offline First in React Native
Offline First in React NativeOffline First in React Native
Offline First in React Native
 
Modernizing IT with Microservices
Modernizing IT with MicroservicesModernizing IT with Microservices
Modernizing IT with Microservices
 
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
TDC2020 - The microservice architecture: enabling rapid, reliable, frequent a...
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with Quarkus
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions
 

More from Grace Jansen

JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptxGrace Jansen
 
SwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxSwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxGrace Jansen
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxGrace Jansen
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxGrace Jansen
 
JavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxJavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxGrace Jansen
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxGrace Jansen
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxGrace Jansen
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxGrace Jansen
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxGrace Jansen
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
JCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxJCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxGrace Jansen
 
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxJavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxGrace Jansen
 
JavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxJavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxGrace Jansen
 
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxGrace Jansen
 
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Grace Jansen
 
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxJBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxGrace Jansen
 
2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdf2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdfGrace Jansen
 
How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!Grace Jansen
 

More from Grace Jansen (20)

JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptx
 
SwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptxSwissJUG_15_factor_app.pptx
SwissJUG_15_factor_app.pptx
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptx
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptx
 
JavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptxJavaLand_To InstantOn and Beyond.pptx
JavaLand_To InstantOn and Beyond.pptx
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptx
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
JCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptxJCON_Adressing the transaction challenge in a cloud-native world.pptx
JCON_Adressing the transaction challenge in a cloud-native world.pptx
 
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxJavaZone_Addressing the transaction challenge in a cloud-native world.pptx
JavaZone_Addressing the transaction challenge in a cloud-native world.pptx
 
JavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptxJavaZone_Mother Nature vs Java – the security face off.pptx
JavaZone_Mother Nature vs Java – the security face off.pptx
 
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxBoost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptx
 
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022
 
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptxJBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
JBCNConf_Addressing_The_Transaction_Challenge_LRA.pptx
 
2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdf2022-Devnexus-StatefulMicroservices.pptx.pdf
2022-Devnexus-StatefulMicroservices.pptx.pdf
 
How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!How to become a superhero without even leaving your desk!
How to become a superhero without even leaving your desk!
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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 productivityPrincipled Technologies
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
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 RobisonAnna Loughnan Colquhoun
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingSelcen Ozturkcan
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 interpreternaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
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
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

AccentoDev - Reacting to the future of application architecture

Editor's Notes

  1. To look to the future of application architecture, let’s first take a look at it’s evolution so far… Monolithic was fine at first – small applications, small traffic, small data requirements, can update over longer periods of time (i.e. batch processing overnight) Can still lose items in shopping cart, can still lose a seat in the cinema, Black Friday – can’t access website (modern users expect more) Can’t do that anymore! We have much larger applications with more data streaming through them and much greater traffic! Distribute out different services Easily add features, deploy small part of application Isolate failure New problems --> users have new ever-demanding expectations Doesn't expect an application to fail or have no access Expect responses as soon as they click Shopping cart example How can we tackle these new demands and expectations user's put on applications? Where do we go in our evolution? Biology background inspiration --> nature inspire our apps Bees = system of individuals, independent but common goal
  2. Biology degree – anology to describe microservices and applications Individuals that have their own roles and responsibilities that work together for the good of the hive Like microservices working together to make the application work Bees have been evolving for millenia The 100 million-year-old fossil was found in a mine in the Hukawng Valley of Myanmar (Burma) and preserved in amber. (Discovered in 2006) Can we use them as inspiration for the behaviour we want to see in our applications Show three examples of bee behaviour that we want to mimic in our apps Not just a rant about bees!
  3. Social structure very complicated in bee hives – many different roles (air conditioning, nurse, gurard, scout) Scout bee looks for food When they find food, they head back to the hive to dedicated dance floors Dance to show other listener bees where the food source is Very complicated dance – they can communicate lots of information to the other bees by changing the movements – includes where the food source is, how far away it is, wind speed, how long it will take to get there, etc Listener bees already waiting for scout to dance, as soon as they have the very minimum info they need they dash off to the food source – life or death situation, they need to get there first so that they get the food and other bee hives don’t HIGHLY RESPONSIVE!! Applications want to mimic responsiveness of bees (not life or death) but user satisfaction Independant Observers Act as soon as possible - quick to respond
  4. What happens when Queen bee dies? Potentially catastrophic! Only ever 1 bee, role is to produce babies, no queen no hive Arguably the most important member of that bee society! System doesn’t crash or shut down, they have an inate trust that she will be replaced Queen emits pheromone (chemical) signals, when she dies those disappear Keey sign! Nurse bees realise and so spring into action to replace queen Pick 4/5 larvae that haven’t hatched yet, feed royal jelly, when first one hatches she murders the others but then mates and goes on to be the queen Other bees continue as normal EXTREMELY RESILIENT! We want our applications to also be resilient Need decoupling for resiliency in the face of potential failure. Colony Independently continues Impact of Queen being lost is managed Has the potential to be catastrophic but isn’t
  5. What happens when the hive is under attack? Lots of different roles – guard bees are one of them, only make up 11% of the hive population, not very much Imagine a bear attacking the hive, 11% isn’t going to cut it, need more Guards recruit more bees to defend hive, but limited number of bees in hive Bees dynamically switch roles, elastically change depending on the load/threat to the hive Once threat is gone, load decreased, bees go back to original load Change resource allocation depending on load – we want this for our application Be elastic in resource allocation – restaurant app example
  6. Creation of the Reactive Manifesto in 2013, by Jonas Bonér to collaborate and solidify what the core principles were for building reactive applications and systems REACT to users (Responsive)- user click a button REACT to load (Elastic) - black friday and login/book table REACT to failure (Resilient) - monitor, replace service REACT to events (event-driven) - achieve other 3 principles how do we achieve this? same way bees do async comm - dancer bee, guard bee recruiting (can communicate on 1:1 and 1:many basis with other bees) Guard bees don’t wait for a response, they just know they’ll switch roles once the signal has been put out
  7. bees = sophisticated system, appear simplistic, actually complicated yet efficient society of independent individuals acting as a whole We want to mimic what bees have achieved - tall ask, bees have had millennia, but by implementing reactive architecture we can start to achieve this Seems to solve a lot of the issues we still face with our applications today – meet user’s expectations
  8. Reactive programming is a great technique for managing internal logic and dataflow transformation, locally within the components, as a way of optimizing code clarity, performance and resource efficiency.
  9. Asynchronous code allows independent IO operations to run concurrently, resulting in efficient code. However, this improved efficiency comes at a cost — straightforward synchronous code may become a mess of nested callbacks. Futures - Enables us to combine the simplicity of synchronous code with the efficiency of the asynchronous approach. Future represents the result of an asynchronous computation. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the result of the computation.
  10. Football team example Reactive programming is a great technique for managing internal logic and dataflow transformation, locally within the components, as a way of optimizing code clarity, performance and resource efficiency. Reactive systems puts the emphasis on distributed communication and gives us tools to tackle resilience and elasticity in distributed systems.
  11. Architectural tools – enable reactive behaviours
  12. Communication between Microservices needs to be based on Asynchronous Message-Passing An asynchronous boundary between services is necessary in order to decouple them, and their communication flow, in time—allowing concurrency—and in space—allowing distribution and mobility. Without this decoupling it is impossible to reach the level of compartmentalization and containment needed for isolation and resilience. Asynchronous and non-blocking execution = more cost-efficient through more efficient use of resources, minimizes contention (congestion) on shared resources in the system, which is one of the biggest hurdles to scalability, low latency, and high throughput. But why is blocking so bad? It’s best illustrated with an example… bees queuing = wasted resource, equivalent to threads The need for asynchronous message-passing does not only include responding to individual messages or requests, but also to continuous streams of messages, potentially unbounded streams. The fundamental shift is that we’ve moved from "data at rest" to "data in motion. Applications today need to react to changes in data in close to real time—when it happens First Wave = data at rest, batch processing, hours of latency, overnight Second Wave = hybrid architecture, lambda architecture, 2 layers (batch and speed layers), added needless complexity – 2 data pipelines and need to merge them afterwards Third Wave – fully embrace data in motion, stream processing architecture, event logging/sourcing….. Lagom framework Message-driven / responsiveness
  13. Event Sourcing ensures that all changes to application state are stored as a sequence of events (e.g. business objects is persisted by storing a sequence of state changing events) Command Query Responsibility Segregation --> disassociate writes (commands) and reads (queries) Applying event sourcing on top of CQRS means persisting each event on the write part of the application. Read part is derived from the sequence of events. Bees brains = local databases Dance floor – write to bees brains Bees can query their own brains (read) May not be most up to date but that’s ok Responsiveness Lagom framework
  14. Database partitioning, separates very large databases into smaller, faster, more manageable parts called data shards Shard = small parts of a whole Meant to make v. large databases more manageable Greater parallelism, without collisions - Sharding - distributes and replicates the data across a pool of databases that do not share hardware or software. Each individual database is known as a shard. Java applications can linearly scale up or scale down by adding databases (shard) to the pool or by removing databases (shards) from the pool. Two bees at the same cell – fill up multiple cells (sharding) Finite space in the hive – sharding out the hive into cells – operate in parallel across cells, reducing contention Imagine one huge cell, only one bee can fill up at a time Resiliency/elasticity Lagom framework
  15. Form of feedback/flow control Without feedback, a distributed system can easily become unstable and fail. Any component that cannot support the worst possible case of loading in the system can become a bottleneck. BLOCKING Without Feedback, other components will continue to increase the load until they are in turn congested, resulting in the ultimate collapse! When one component is struggling to keep-up, the system as a whole needs to respond in a sensible way. It is unacceptable for the component under stress to fail catastrophically or to drop messages in an uncontrolled fashion. Since it can’t cope and it can’t fail it should communicate the fact that it is under stress to upstream components and so get them to reduce the load. This back-pressure is an important feedback mechanism that allows systems to gracefully respond to load rather than collapse under it. this mechanism helps ensure that the system is resilient under load, and will provide information that may allow the system itself to apply other resources to help distribute the load, see Elasticity. Backpressure = built wherever the publisher is faster than the subscriber Honeycomb vs nectar ratio Resiliency / responsiveness
  16. Bees are intelligent actors, software isn’t so we have to program to imitate it Protect resources and help them recover Circuit breaker opens when a particular type of error occurs multiple times in a short period. An open circuit breaker prevents further requests to be made. They usually close after a certain amount of time, giving enough space for underlying services to recover. Resiliency Akka
  17. There are tradeoffs to this – eventual consistency! Dance floor  bees assume the food is still available until another bee comes back and says otherwise More representative of the way the world works Given enough time, all nodes will become consistent Not perfect  sharding to help improve consistency Lagom framework CAP Theorum
  18. Bulkhead use in industry to partition a ship into segments, so that sections can be sealed off if the hull is breeched. --> concept can be applied in software development to segregate resources Like to think of it as the opposite of back pressure, this time it’s the publisher who limits resources rather than the subscribers Protect limited resources from being exhausted. Dancer communicating how many bees should go to food source Resiliency/responsiveness Akka
  19. Vert.x built upon vertixles, includes a distributed event-bus, used in runtimes like Quarkus MP offers reactive streams operators, and reactive messaging APIs – used by multiple vendors to enable asynchronous communication between microservices Akka, Lagom, Play – based on actor framework
  20. Switch off bits of system to deal with load of customers trying to buy new phones – reactive solved this Google: “faster page loads, the more successful it will be”, people don’t want to wait Performance plays a major role in the success of any online venture. Case studies that show how high-performing sites engage and retain users better than low-performing ones: Pinterest increased search engine traffic and sign-ups by 15% when they reduced perceived wait times by 40%. COOK increased conversions by 7%, decreased bounce rates by 7%, and increased pages per session by 10% when they reduced average page load time by 850 milliseconds (14.2 secs). Here are a couple case studies where low performance had a negative impact on business goals: The BBC found they lost an additional 10% of users for every additional second their site took to load. DoubleClick by Google found 53% of mobile site visits were abandoned if a page took longer than 3 seconds to load.
  21. More coming in future on: Acknowledgement Frontend SSE etc
  22. Reactive report = ebook Getting started with Reactive = article on IBM Developer, with useful links Reactive Programming Interview = Mary interviewing Mark Heckler around reactive programming, RxJava, Spring Reactor, etc MicroProfileReactiveMessaging = article on openliberty.io introducing this specification Open liberty guides = lead on from the reactive ones listed in this deck (other MP specification) OpenShiftReactiveLabs = quarkus based hands-on tutorial, deployed on OpenShift QuarkusReactiveJava = article on IBM Developer, introducing reactive applications made via Quarkus and lots of useful links to blogs