Building scalable, resilient and responsive systems

Preview:

Citation preview

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

Reactive Manifesto

http://www.reactivemanifesto.org/

Principles of Reactive SystemsWhy They Are ImportantStrategies to Achieve Them

Summary

by Corneliu BohantovThank you!

Recommended