building scalable, resilient and responsive systems
TRANSCRIPT
Building reactive systems
by Corneliu Bohantov
YesterdaySingle machinesSingle core processorsExpensive RAMExpensive diskSlow networksFew concurrent usersSmall data setsLatency in seconds
TodayClusters of machinesMulticore processorsCheap RAMCheap diskFast networksLots of concurrent usersLarge data setsLatency in milliseconds
this means ...Distributed
Systems!
1. The network is reliable2. Latency is zero3. Bandwidth is infinite4. The network is secure5. Topology doesn’t change6. There is one administrator7. Transport cost is zero8. The network is homogenous
Fallacies of distributed computing
Monolith
Monolith
Microservices
Microservices
Microservices
Still a Monolith
Reactive Principles
TODO
Divide et Impera
TODO
Conway’s Law
“Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.”
Microservices
Do One Thing, and Do It Well
TODO
Asynchronous Communication
TODO
Avoid Blocking
TODO
Amdahl’s Law
1. Divide et Impera2. Do One Thing, and Do It Well3. Own Your State, Exclusively4. Act Autonomously5. Prefer Asynchronous Communication6. Avoid Blocking7. Eliminate Shared Mutable State8. Embrace Shared-Nothing Architecture
Reactive principles
TODO
Elasticity
TODO
Resilience
TODO
Errors vs Failures
Timeouts
Circuit breakers
Back Pressure
Replication
Principles of Reactive SystemsWhy They Are ImportantStrategies to Achieve Them
Summary
by Corneliu BohantovThank you!