Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Resilience Patterns
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Stefan Seegers
August 26, 2017
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Resilience Patterns
Stefan Seegers
August 26, 2017
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
First, design no harm
axbom
PRO
2
1.3k
Abbi's Birthday
coloredviolet
4
10k
A better future with KSS
kneath
240
18k
Bash Introduction
62gerente
615
220k
Chasing Engaging Ingredients in Design
codingconduct
0
360
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
What's in a price? How to price your products and services
michaelherold
247
13k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
Transcript
RESILIENCE Source: https://cs.wikipedia.org/wiki/Dominový_efekt#/media/File:Toppledominos.jpg @StefanSeegers
TIMEOUTS Source: https://commons.wikimedia.org/wiki/File:Hourglass_in_red_leather_covered_case,_second_of_two_views._Wellcome_L0011338.jpg
WHY TIMEOUTS? • Occupy resources for limited time • Fault
isolation • Do not wait forever
OCCUPY RESOURCES • Reasonable Timeout values • Unblock Threads and
Resources • Limit Retries • Delay retries?
WAIT FOREVER? • Client’s perspective? • „Hope is not a
design method“ Source: Michael Nygard in Release it! https://pragprog.com/book/mnee/release-it
BULKHEADS Source: https://commons.wikimedia.org/wiki/File:VII_C_U-Boot_Druckschott.jpg
WHY BULKHEADS ? Source: https://commons.wikimedia.org/wiki/File:Tanker_Jessica_aground_in_Galapagos.jpg
BULKHEADS IN IT? • Error in System A may not
interfere with System B or the whole System • Minimize Damage • Prevent Chain Reactions • Isolation Pattern
Shared Service Service Flight Status Service Flight Checkin
ALL FLIGHTS CANCELLED
Source: https://commons.wikimedia.org/wiki/File:Tanker_Jessica_aground_in_Galapagos.jpg
HIDDEN DEPENDENCY!
SEPARATE WITH BULKHEADS!
Shared Service Pool 1 Service Flight Status Service Flight Checkin
Dedicated Pools! Shared Service Pool 2 Service Pool
PATTERNS • Several Servers • Dedicated Servers • Dedicated Resource
Pools • Split into several Services
JEE RESOURCE POOLS • HTTP Thread Pool • Managed Thread
Factories Threads for JEE • Managed Executor Services Submitting Tasks for JEE • JDBC Pools
BUILD YOUR OWN Source: https://pixabay.com/de
READ DATA public void read(List<String> aCollection) { while (externalSystem.hasMoreData()) {
String data = externalSystem.readData(); aCollection.add(data); } } Do you have enough memory?
PROTECT YOUR APP • Protect against infinite loop • E.g.
configurable counter to stop reading
CIRCUIT BREAKER Source: https://commons.wikimedia.org/wiki/File:Fischalter.jpg
CIRCUIT BREAKER? Protect from integration point problems!
Source: https://martinfowler.com/bliki/CircuitBreaker.html
Source: https://martinfowler.com/bliki/CircuitBreaker.html STATE DIAGRAM
GUIDELINE • Spend each integration point it’s own circuit breaker
• Configure retry timeout and counter according to the nature of the system • Dynamic config where feasible
BENEFITS • Fail fast • Latency control • Protect resource
pools • Avoid cascading failures • Don’t stress systems which are under trouble
CHANCES • Downgrade of a service • Self healing •
Monitoring Point
REFERENCES • Release it!, Chapter 5 https://pragprog.com/book/mnee/release-it • https://martinfowler.com/bliki/CircuitBreaker.html
Coming Fall 2017! https://pragprog.com/book/mnee2/release-it-second-edition
May your system live long and prosper!