Thank you to our Sponsors 
Media Sponsor:
System 
Reliability and Resilience 
and stuff
tuple
//Initialize customer and 
invoice 
Initialize(customer, invoice);
public void Initialize 
(Customer customer, Invoice 
invoice) 
{ 
customer.Name = “asdf”; 
invoice.Date = DateTime.Now; 
}
Initialize(customer, invoice); 
//did something happen to 
customer 
// and/or invoice?
customer.Name = 
InitNameFrom(customer, 
invoice); 
invoice.Date = 
InitDateFrom(customer, 
invoice);
customer.Name = 
GetNameFrom(customer, 
invoice); 
invoice.Date = 
GetDateFrom(customer, 
invoice);
var results = 
Initialize(customer, invoice); 
customer.Name = results.Item1; 
invoice.Date = results.Item2;
public tuple<string, DateTime> 
Initialize(customer, 
invoice) 
{ 
return new Tuple<string, DateTime> 
(“asdf”, DateTime.Now); 
}
public static bool TryParse 
(string s, out DateTime result) 
or 
public static 
tuple<bool, DateTime?> TryParse 
(string s)
tuple 
• Avoid side effects 
• Avoid out parameters 
• multiple values without a specific type
null object
private ILogger _logger; 
public MyClass(ILogger logger) { 
_logger = logger; 
} 
… 
if (_logger != null) { 
_logger.Debug( 
“it worked on my machine!”); 
}
null checks for 
everyone!
forget 
one 
and…
public class NullLogger : ILogger { 
public void Debug(string text) { 
//do sweet nothing 
} 
}
private ILogger _logger = 
new NullLogger(); 
public MyClass(ILogger logger) { 
_logger = logger; 
} 
… 
_logger.Debug( 
“it worked on my machine!”);
null object 
• Can eliminate null checks 
• Simple to implement
Circuit 
Breaker
Reliability and Resilience
Retry
Out of Process 
Dependency 
N times 
Your Application
Out of Process 
Dependency 
N times 
* 
Y clients
= 
Denial of 
Service Attack
Limit the # 
of retries
N * Y 
becomes 
5 * Y
Y is 
still a 
problem
Reliability and Resilience
Circuit 
Breaker
Reliability and Resilience
State Machine 
On :: Off
On  Off 
when not healthy
Off  On 
manually
Get to software 
before we ask you 
to dance
Out of Process 
Dependency 
Healthy 
or 
Unhealthy
State is 
independent of 
requestor 
Out of Process 
Dependency
Your Application 
Has many 
independent 
external 
dependencies
Your Application 
Can throttle 
itself
Your Application 
Has a 
wait 
threshold
Your Application 
External 
Dependency 
Circuit Breaker 
Threshold = 2 
Pause = 10ms 
Timeout = 30s 
Request State = Closed 
Request 
Failure (i.e. HTTP 500) 
Failure Count = 1 
Pause 10ms 
Request 
Failure (i.e. HTTP 500) 
Failure Count = 2 
State = Open 
OperationFailedException
Threshold = 2 
Pause = 10ms 
Timeout = 30s 
Request State = Open 
30s has not passed 
CircuitBreakerOpenException 
Request 
30s has not passed 
CircuitBreakerOpenException 
System can try 
to 
become 
healthy 
for 30s 
Your Application 
External 
Dependency 
Circuit Breaker
Threshold = 2 
Pause = 10ms 
Timeout = 30s 
30s has passed 
Your Application 
Request State = ½ Open 
Request 
Failure (i.e. HTTP 500) 
Failure Count = 2 
State = Open 
OperationFailedException 
External 
Dependency 
Circuit Breaker
Threshold = 2 
Pause = 10ms 
Timeout = 30s 
30s has passed 
Request State = ½ Open 
Request 
Failure Count = 
0 
State = Closed 
Response 
Response 
Your Application 
External 
Dependency 
Circuit Breaker
Closed 
Open 
½ Open
½ Open 
is like a 
manual reset
Pause 
Timeout
Pause 
between calls 
in the loop
Timeout 
before you 
can call again
Exceptions
OperationFailed 
: 
AggregateException
CircuitBreakerOpen 
: 
ApplicationException
Don’t Loose 
Exception Info
Always use 
InnerException(s)
Threshold = 3 
Request State = Closed 
Request 
Failure (i.e. HTTP 500) 
? 
Request 
Request Failure (i.e. HTTP 500) 
Failure Count = 2 
Failure Count = 0 
State = Closed 
Response 
Response 
Your Application 
External 
Dependency 
Circuit Breaker 
Failure Count = 1
Segregate 
Dependencies
circuitBreaker(“database”) 
circuitBreaker(“weatherservice”)
Dependency type, 
endpoint svc, 
endpoint
Where?
Your Application 
Circuit Breaker 
Proxy 
Out of Process 
Dependency
Watch for 
Inception
Your Application 
Circuit Breaker 
Proxy 
Web Service 
Circuit Breaker 
Repository 
Database
circuit breaker 
• retry looping 
• slow down attempts 
• good neighbour
Thank you 
Donald Belcham 
@dbelcham 
donald.belcham@igloocoder.com

More Related Content

PPTX
Reliability and Reslience
PPTX
Unit testing patterns for concurrent code
PPTX
Aspdevice - Asp Fast Crud introdution
PDF
Redux Thunk - Fu - Fighting with Async
PPTX
{ jscamp : "Hannam" } Qunit Test Automation using Hudson and Selenium - 김민종
PDF
End to end todo list app with NestJs - Angular - Redux & Redux Saga
PDF
MeetJS Summit 2016: React.js enlightenment
PPT
Repetition is bad, repetition is bad.
Reliability and Reslience
Unit testing patterns for concurrent code
Aspdevice - Asp Fast Crud introdution
Redux Thunk - Fu - Fighting with Async
{ jscamp : "Hannam" } Qunit Test Automation using Hudson and Selenium - 김민종
End to end todo list app with NestJs - Angular - Redux & Redux Saga
MeetJS Summit 2016: React.js enlightenment
Repetition is bad, repetition is bad.

Viewers also liked (19)

PDF
Lorne Coyle takes a photo of the Shepke Family
PPTX
Genera oportunidades de negocio a través de Twitter
PDF
The Brazilian Experience with Public Software
PDF
Juhlat saksa 7-9
PPTX
A Grand Tour of OER Policy
DOCX
Planificador de proyectos
PDF
Internet Mobile : Quelles sont les nouvelles stratégies média des entreprises...
PPS
A Tribute to Cindy
PPTX
Batchmates
PPT
Goodbye To High School
PDF
Batchmates Reuniting Friends For Life
PPTX
Grief & loss
PPTX
care of dying patient
PPT
Loss And Grief
PPTX
Stages of grief
PPT
Grief, Loss,Death And Dying
Lorne Coyle takes a photo of the Shepke Family
Genera oportunidades de negocio a través de Twitter
The Brazilian Experience with Public Software
Juhlat saksa 7-9
A Grand Tour of OER Policy
Planificador de proyectos
Internet Mobile : Quelles sont les nouvelles stratégies média des entreprises...
A Tribute to Cindy
Batchmates
Goodbye To High School
Batchmates Reuniting Friends For Life
Grief & loss
care of dying patient
Loss And Grief
Stages of grief
Grief, Loss,Death And Dying
Ad

Similar to Reliability and Resilience (20)

PPTX
Opportunities to Improve System Reliability and Resilience by Donald Belcham
PDF
Building resilient applications
PDF
Introduction of failsafe
PPTX
Circuit breaker pattern
PPTX
JDD 2017: Resilience of the external system call with circuit breaker (Jacek ...
PDF
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
PDF
An exception occurred - Please try again
PDF
Circuit Breakers with Swift
PDF
Resilience-Patterns in Cloud-Applications
PDF
Joe armstrong erlanga_languageforprogrammingreliablesystems
PDF
Fault tolerance made easy
PDF
Circuit breaker
PDF
Reliability Patterns for Fun and Profit
PDF
TheConf 2018 - How does your app behave when everything goes wrong
PPTX
Demystifying the use of circuit breakers with MuleSoft
PDF
Communicating State Machines
PDF
Protect your Users with Circuit breakers
PDF
2018-05-16 Geeknight Dallas - Distributed Systems Talk
PPTX
C:\Users\Shashank\Desktop\Job DocJob PPT.pptx
PDF
Circuit breakers @ API World 2016
Opportunities to Improve System Reliability and Resilience by Donald Belcham
Building resilient applications
Introduction of failsafe
Circuit breaker pattern
JDD 2017: Resilience of the external system call with circuit breaker (Jacek ...
Circuit breakers - Using Spring-Boot + Hystrix + Dashboard + Retry
An exception occurred - Please try again
Circuit Breakers with Swift
Resilience-Patterns in Cloud-Applications
Joe armstrong erlanga_languageforprogrammingreliablesystems
Fault tolerance made easy
Circuit breaker
Reliability Patterns for Fun and Profit
TheConf 2018 - How does your app behave when everything goes wrong
Demystifying the use of circuit breakers with MuleSoft
Communicating State Machines
Protect your Users with Circuit breakers
2018-05-16 Geeknight Dallas - Distributed Systems Talk
C:\Users\Shashank\Desktop\Job DocJob PPT.pptx
Circuit breakers @ API World 2016
Ad

More from Donald Belcham (19)

PPTX
Introduction to Messaging
PDF
Advanced messaging patterns
PPTX
Microservices: The Nitty Gritty
PPTX
Microservices: A Gentle Introduction
PPTX
AOP & Patterns
PPTX
Intro To AOP
PPTX
Source Control Abominations
PPTX
Is There Room for Craftsmanship in Software Development
PPTX
Reducing External Risk
PPTX
Performance Tuning in the Trenches
PPTX
Introduction To AOP
PPTX
Design patterns you didn't know about
PPTX
Programming Closer to the Iron
PPTX
Taming Brownfield Codebases with AOP
PPTX
Domain Driven Design Primer
PPTX
Hacking Hardware
PPTX
Advanced AOP
PPTX
The Dark Side of Code Metrics
PPTX
Continuous Deployment
Introduction to Messaging
Advanced messaging patterns
Microservices: The Nitty Gritty
Microservices: A Gentle Introduction
AOP & Patterns
Intro To AOP
Source Control Abominations
Is There Room for Craftsmanship in Software Development
Reducing External Risk
Performance Tuning in the Trenches
Introduction To AOP
Design patterns you didn't know about
Programming Closer to the Iron
Taming Brownfield Codebases with AOP
Domain Driven Design Primer
Hacking Hardware
Advanced AOP
The Dark Side of Code Metrics
Continuous Deployment

Recently uploaded (20)

PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PDF
Top 10 Software Development Trends to Watch in 2025 🚀.pdf
PPTX
assetexplorer- product-overview - presentation
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Visual explanation of Dijkstra's Algorithm using Python
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PPTX
Patient Appointment Booking in Odoo with online payment
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PDF
Cost to Outsource Software Development in 2025
PDF
Time Tracking Features That Teams and Organizations Actually Need
PDF
How Tridens DevSecOps Ensures Compliance, Security, and Agility
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PPTX
"Secure File Sharing Solutions on AWS".pptx
PPTX
GSA Content Generator Crack (2025 Latest)
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Microsoft Office 365 Crack Download Free
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
Top 10 Software Development Trends to Watch in 2025 🚀.pdf
assetexplorer- product-overview - presentation
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Computer Software and OS of computer science of grade 11.pptx
Visual explanation of Dijkstra's Algorithm using Python
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Patient Appointment Booking in Odoo with online payment
How to Use SharePoint as an ISO-Compliant Document Management System
Cost to Outsource Software Development in 2025
Time Tracking Features That Teams and Organizations Actually Need
How Tridens DevSecOps Ensures Compliance, Security, and Agility
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
"Secure File Sharing Solutions on AWS".pptx
GSA Content Generator Crack (2025 Latest)
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
Salesforce Agentforce AI Implementation.pdf
Microsoft Office 365 Crack Download Free
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx

Reliability and Resilience