SlideShare a Scribd company logo
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
What Does
Cloud native
Mean?
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
Why is
Cloud native
Infrastructure
Not enough?
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
Managing empty boxes is
only half of the solution,
it matters equally much
what you put inside them
Cloud Native Applications need both a:
✓ Scalable and Available Infrastructure Layer
✓ Scalable and Available Application Layer
Reactive shows the way
Addresses the challenges of distributed systems directly
in its abstractions, programming/data models,
protocols, interaction schemes, and error handling
Reactive shows the way
The Reactive Application
Addresses the challenges of distributed systems directly
in its abstractions, programming/data models,
protocols, interaction schemes, and error handling
Not as an afterthought
not as operational or infrastructure problems
that are dealt with via increasingly complex tech stacks,
wrappers, workarounds, and leaky abstractions
Reactive shows the way
The Reactive Application
What’s the antidote?
Introducing the
Reactive Principles
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
IV. Assert Autonomy
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
IV. Assert Autonomy
V. Tailor Consistency
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
IV. Assert Autonomy
V. Tailor Consistency
VI. Decouple Time
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
IV. Assert Autonomy
V. Tailor Consistency
VI. Decouple Time
VII. Decouple Space
https://principles.reactive.foundation
Introducing the
Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
IV. Assert Autonomy
V. Tailor Consistency
VI. Decouple Time
VII. Decouple Space
VIII. Handle Dynamics
https://principles.reactive.foundation
Ⅰ
ⅠStay Responsive
Always respond in a timely manner
It’s easy to stay responsive
during “Blue sky” scenarios
But it’s equally important to
stay responsive in the face of
failures, communication outages,
and unpredictable workloads
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
“An escalator can never break:
it can only become stairs.
You should never see an
Escalator Temporarily Out Of Order sign,
just Escalator Temporarily Stairs.
Sorry for the convenience.”
- Mitch Hedberg
Ⅱ
ⅡAccept Uncertainty
Build reliability despite unreliable foundations
Welcome To The Wild Ocean Of
Non Determinism
Distributed Systems
Exploit
Reality
Exploit
Reality
We need to
In our design
Information
Has Latency
Information Is Always
From the Past
Time
We cannot always trust
Order
Or
There Is No
Now
We Need To Model and manage
Uncertainty
Directly In The Application Architecture
“In a system which cannot count
on distributed transactions, the
management of uncertainty must be
implemented in the business logic.”
- Pat Helland
Life Beyond Distributed Transactions - An Apostate’s Opinion, Pat Helland (2007)
We Need To Model and manage
Uncertainty
Directly In The Application Architecture
Ⅲ
ⅢEmbrace Failure
Except things to go wrong and
design for resilience
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
We Need To
Manage
Failure
Not Try To Avoid It
Resilience
is by
Design
Photo courtesy of FEMA/Joselyne Augustino
“Accidents come from relationships 
not broken parts.”
- Sidney dekker
Drift into Failure - Sidney Dekker
Decoupling in space
allows the failure to be kept inside
designated failure zones (bulkheads)
Decoupling in time
enables other components to reliably detect
and handle failures even when they cannot
be explicitly communicated
Failures Need To Be
1. Contained—Avoid cascading failures
2. Reified—as values
3. Signalled—Asynchronously
4. Observed—by 1-N
5. Managed—Outside failed Context
Let It Crash
To Build Self-healing Systems
Ⅳ
Ⅳ
Assert Autonomy
Design components
that act independently
And interact collaboratively
We need to Craft
Autonomous Islands
Of Determinism
Mutable State
Needs To Be
Contained
And Non Observable
Publish Facts
To Outside World
Using well-defined Protocols
A system of distributed services is a
never-ending stream towards convergence
A system of distributed services is a
never-ending stream towards convergence
Always in the process of convergence
Never reaching the state of convergence
There Is No Now
A system of distributed services is a
never-ending stream towards convergence
Always in the process of convergence
Never reaching the state of convergence
Think In Terms Of Consistency Boundaries
Small islands of strong consistency in a
river of constant change and uncertainty
Data on the inside vs Data on the outside - Pat Helland
Inside Data
Our current present state
Data on the inside vs Data on the outside - Pat Helland
Inside Data
Our current present state
Outside Data
Blast from the past facts
Data on the inside vs Data on the outside - Pat Helland
Inside Data
Our current present state
Outside Data
Blast from the past facts
Between Services
Hope for the future commands
Data on the inside vs Data on the outside - Pat Helland
“Autonomy makes information local,
leading to greater certainty and stability.”
- Mark Burgess
In Search of Certainty - Mark Burgess
Ⅴ
ⅤTailor Consistency
Individualize consistency per component
to balance availability and performance
STRONG
Consistency
Is the wrong default
“Two-phase commit is the
anti-availability protocol.”
- Pat Helland
Standing on Distributed Shoulders of Giants - Pat Helland
Doh, you’re right.
All those distributed
transactions are heavy!
Don’t carry around more guarantees than you need!!!
Strong Consistency Within
The Consistency Boundary
BETWEEN
Consistency
Boundaries
It Is A
ZOO
BETWEEN
Consistency
Boundaries
It Is A
ZOO
Eventual
Consistency
We have to rely on
But relax—it’s how the world works
“It's easier to ask for forgiveness
than it is to get permission”
- Grace Hopper
Guess.
Apologize.
Compensate.
Use a protocol of
We need Systems that are Decoupled in
Space and Time
Ⅵ
Decouple Time
Process asynchronously to
avoid coordination and waiting
Ⅵ
“Silence is not only golden.
It is seldom misquoted.”
- Bob Monkhouse
Temporal
Coupling
Reduce
✓ Efficient use of resources
✓ Minimized contention
Go Async
Don’t block needlessly
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
Needs to be async and non-blocking all the way down
Needs to be async and non-blocking all the way down
Ⅶ
ⅦDecouple Space
Create flexibility by embracing the network
Spatial
Coupling
Reduce
The Reactive Principles: Eight Tenets For Building Cloud Native Applications
Embrace The Network
✓Make distribution first class
• Avoid the mistakes of EJB, CORBA,
or Network Attached Disks
Embrace The Network
✓Make distribution first class
• Avoid the mistakes of EJB, CORBA,
or Network Attached Disks
✓Go Async
• Use Asynchronous IO
• Use Message-Passing
Embrace The Network
✓Make distribution first class
• Avoid the mistakes of EJB, CORBA,
or Network Attached Disks
✓Go Async
• Use Asynchronous IO
• Use Message-Passing
✓Leverage Location Transparency
• Mobility, Virtual Addressing
Location Transparency
One abstraction for Communication
across all dimensions of scale
Location Transparency
One abstraction for Communication
across all dimensions of scale
Core Socket CPU
Container Server
Rack Data Center Global
Spatial
Decoupling
Enables Resilience
Ⅷ
ⅧHandle Dynamics
Continuously adapt to varying
demand and resources
Be Elastic
React to changes in the input rate
Increasing/decreasing resources
When Resources
Are Fixed
Decrease the scope of processed Inputs
Signal degradation to the outside
fast producer
Should never overload
slow consumer
Always Apply
Back Pressure
fast producer
Should never overload
slow consumer
Always Apply
Back Pressure
The Reactive Principles
I. Stay Responsive
II. Accept Uncertainty
III. Embrace Failure
IV. Assert Autonomy
V. Tailor Consistency
VI. Decouple Time
VII. Decouple Space
VIII. Handle Dynamics
Reactive Patterns
1. Partition State
2. Communicate Facts
3. Isolate Mutations
4. Coordinate Dataflow
5. Localize State
6. Observe Communications
7. TBD (help out)
We also have a growing catalog of
https://principles.reactive.foundation
Learn More
https://principles.reactive.foundation
Learn More
https://principles.reactive.foundation
Help OUT
The Reactive Principles: Eight Tenets For Building Cloud Native Applications

More Related Content

PDF
Digital Transformation with Kubernetes, Containers, and Microservices
PDF
Cloudstate - Towards Stateful Serverless
PDF
Migrating from Java EE to cloud-native Reactive systems
PDF
Designing Events-First Microservices For A Cloud Native World
PDF
The Future of Services: Building Asynchronous, Resilient and Elastic Systems
PDF
Nine Neins - where Java EE will never take you
PPTX
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
PPTX
Reactive Revealed Part 2: Scalability, Elasticity and Location Transparency i...
Digital Transformation with Kubernetes, Containers, and Microservices
Cloudstate - Towards Stateful Serverless
Migrating from Java EE to cloud-native Reactive systems
Designing Events-First Microservices For A Cloud Native World
The Future of Services: Building Asynchronous, Resilient and Elastic Systems
Nine Neins - where Java EE will never take you
Lessons From HPE: From Batch To Streaming For 20 Billion Sensors With Lightbe...
Reactive Revealed Part 2: Scalability, Elasticity and Location Transparency i...

What's hot (20)

PDF
Revitalizing Aging Architectures with Microservices
PDF
Microservices, Kubernetes, and Application Modernization Done Right
PDF
What is reactive
PDF
How to Migrate to Cloud with Complete Confidence and Trust
PDF
The Reactive Principles: Design Principles For Cloud Native Applications
PPTX
Building Reactive Fast Data & the Data Lake with Akka, Kafka, Spark
PDF
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
PDF
Microservices, Monoliths, SOA and How We Got Here
PPTX
Benefits Of The Actor Model For Cloud Computing: A Pragmatic Overview For Jav...
PPTX
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
PDF
What is Reactive programming?
PPTX
Talk at the Boston Cloud Foundry Meetup June 2015
PDF
Event Sourcing in less than 20 minutes - With Akka and Java 8
PDF
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
PDF
Revitalizing Walmart's Aging Architecture for Web Scale
PPTX
Modern Cloud Fundamentals: Misconceptions and Industry Trends
PDF
Designing Events-first Microservices
PPTX
The Architecture of Continuous Innovation - OSCON 2015
PDF
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
PPTX
Managing a Microservices Development Team (And advanced Microservice concerns)
Revitalizing Aging Architectures with Microservices
Microservices, Kubernetes, and Application Modernization Done Right
What is reactive
How to Migrate to Cloud with Complete Confidence and Trust
The Reactive Principles: Design Principles For Cloud Native Applications
Building Reactive Fast Data & the Data Lake with Akka, Kafka, Spark
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
Microservices, Monoliths, SOA and How We Got Here
Benefits Of The Actor Model For Cloud Computing: A Pragmatic Overview For Jav...
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
What is Reactive programming?
Talk at the Boston Cloud Foundry Meetup June 2015
Event Sourcing in less than 20 minutes - With Akka and Java 8
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Revitalizing Walmart's Aging Architecture for Web Scale
Modern Cloud Fundamentals: Misconceptions and Industry Trends
Designing Events-first Microservices
The Architecture of Continuous Innovation - OSCON 2015
Kafka Summit SF 2017 - Running Kafka for Maximum Pain
Managing a Microservices Development Team (And advanced Microservice concerns)
Ad

Similar to The Reactive Principles: Eight Tenets For Building Cloud Native Applications (20)

PDF
From Microliths to Microsystems
PDF
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
PDF
Stateful on Stateless - The Future of Applications in the Cloud
PDF
Adopting the Cloud
PPTX
An Architecture for Autonomy
PPTX
Designing distributed systems
PPTX
designing distributed scalable and reliable systems
PDF
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
PDF
Tiger oracle
PDF
Reactive - Is it really a Magic Pill?
PPTX
Technology insights: Decision Science Platform
PDF
HLayer / Cloud Native Best Practices
PDF
Cloudstate—Towards Stateful Serverless
PDF
Reactive Supply To Changing Demand
PPTX
Software Development in Uncertain Times (VoxxedDays Athens 2022)
PDF
Cloud Design Patterns
PPTX
Cloud computing
PPTX
Cloud Computing - Geektalk
PDF
How Events Are Reshaping Modern Systems
PDF
Software Architecture Anti-Patterns
From Microliths to Microsystems
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Stateful on Stateless - The Future of Applications in the Cloud
Adopting the Cloud
An Architecture for Autonomy
Designing distributed systems
designing distributed scalable and reliable systems
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Tiger oracle
Reactive - Is it really a Magic Pill?
Technology insights: Decision Science Platform
HLayer / Cloud Native Best Practices
Cloudstate—Towards Stateful Serverless
Reactive Supply To Changing Demand
Software Development in Uncertain Times (VoxxedDays Athens 2022)
Cloud Design Patterns
Cloud computing
Cloud Computing - Geektalk
How Events Are Reshaping Modern Systems
Software Architecture Anti-Patterns
Ad

More from Lightbend (20)

PDF
IoT 'Megaservices' - High Throughput Microservices with Akka
PDF
How Akka Cluster Works: Actors Living in a Cluster
PDF
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
PDF
Akka at Enterprise Scale: Performance Tuning Distributed Applications
PDF
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
PDF
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
PDF
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
PDF
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
PDF
Full Stack Reactive In Practice
PDF
Akka and Kubernetes: A Symbiotic Love Story
PPTX
Scala 3 Is Coming: Martin Odersky Shares What To Know
PDF
Migrating From Java EE To Cloud-Native Reactive Systems
PDF
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
PDF
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
PDF
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
PDF
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
PDF
Akka and Kubernetes: Reactive From Code To Cloud
PDF
Hands On With Spark: Creating A Fast Data Pipeline With Structured Streaming ...
PDF
How Akka Works: Visualize And Demo Akka With A Raspberry-Pi Cluster
PDF
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
IoT 'Megaservices' - High Throughput Microservices with Akka
How Akka Cluster Works: Actors Living in a Cluster
Putting the 'I' in IoT - Building Digital Twins with Akka Microservices
Akka at Enterprise Scale: Performance Tuning Distributed Applications
Detecting Real-Time Financial Fraud with Cloudflow on Kubernetes
Digital Transformation from Monoliths to Microservices to Serverless and Beyond
Akka Anti-Patterns, Goodbye: Six Features of Akka 2.6
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Full Stack Reactive In Practice
Akka and Kubernetes: A Symbiotic Love Story
Scala 3 Is Coming: Martin Odersky Shares What To Know
Migrating From Java EE To Cloud-Native Reactive Systems
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
A Glimpse At The Future Of Apache Spark 3.0 With Deep Learning And Kubernetes
Akka and Kubernetes: Reactive From Code To Cloud
Hands On With Spark: Creating A Fast Data Pipeline With Structured Streaming ...
How Akka Works: Visualize And Demo Akka With A Raspberry-Pi Cluster
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
AI in Product Development-omnex systems
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Introduction to Artificial Intelligence
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPT
Introduction Database Management System for Course Database
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
L1 - Introduction to python Backend.pptx
PDF
Digital Strategies for Manufacturing Companies
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Complete React Javascript Course Syllabus.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
medical staffing services at VALiNTRY
PPT
JAVA ppt tutorial basics to learn java programming
2025 Textile ERP Trends: SAP, Odoo & Oracle
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How to Migrate SBCGlobal Email to Yahoo Easily
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
AI in Product Development-omnex systems
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Introduction to Artificial Intelligence
How to Choose the Right IT Partner for Your Business in Malaysia
Introduction Database Management System for Course Database
Upgrade and Innovation Strategies for SAP ERP Customers
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
L1 - Introduction to python Backend.pptx
Digital Strategies for Manufacturing Companies
ISO 45001 Occupational Health and Safety Management System
Complete React Javascript Course Syllabus.pdf
Transform Your Business with a Software ERP System
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
medical staffing services at VALiNTRY
JAVA ppt tutorial basics to learn java programming

The Reactive Principles: Eight Tenets For Building Cloud Native Applications