25
Building reactive systems by Corneliu Bohantov

Building scalable, resilient and responsive systems

Embed Size (px)

Citation preview

Page 1: Building scalable, resilient and responsive systems

Building reactive systems

by Corneliu Bohantov

Page 2: Building scalable, resilient and responsive systems

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

Page 3: Building scalable, resilient and responsive systems

this means ...Distributed

Systems!

Page 4: Building scalable, resilient and responsive 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

Page 5: Building scalable, resilient and responsive systems

Monolith

Monolith

Page 6: Building scalable, resilient and responsive systems

Microservices

Microservices

Page 7: Building scalable, resilient and responsive systems

Microservices

Still a Monolith

Page 8: Building scalable, resilient and responsive systems

Reactive Principles

Page 9: Building scalable, resilient and responsive systems

TODO

Divide et Impera

Page 10: Building scalable, resilient and responsive systems

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.”

Page 11: Building scalable, resilient and responsive systems

Microservices

Do One Thing, and Do It Well

Page 12: Building scalable, resilient and responsive systems

TODO

Asynchronous Communication

Page 13: Building scalable, resilient and responsive systems

TODO

Avoid Blocking

Page 14: Building scalable, resilient and responsive systems

TODO

Amdahl’s Law

Page 15: Building scalable, resilient and responsive systems

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

Page 16: Building scalable, resilient and responsive systems

TODO

Elasticity

Page 17: Building scalable, resilient and responsive systems

TODO

Resilience

Page 18: Building scalable, resilient and responsive systems

TODO

Errors vs Failures

Page 19: Building scalable, resilient and responsive systems

Timeouts

Page 20: Building scalable, resilient and responsive systems

Circuit breakers

Page 21: Building scalable, resilient and responsive systems

Back Pressure

Page 22: Building scalable, resilient and responsive systems

Replication

Page 23: Building scalable, resilient and responsive systems

Reactive Manifesto

http://www.reactivemanifesto.org/

Page 24: Building scalable, resilient and responsive systems

Principles of Reactive SystemsWhy They Are ImportantStrategies to Achieve Them

Summary

Page 25: Building scalable, resilient and responsive systems

by Corneliu BohantovThank you!