7. Bibliography
• Reactive Architecture — an overview,
http://www.reactivemanifesto.org
• Netflix’ resilience
concept,http://techblog.netflix.com/2011/07/netflix-simian-
army.html
• Reactive Extensions for the JVM,
https://github.com/Netflix/RxJava
• Hystrix — latency & fault tolerance library,
https://github.com/Netflix/Hystrix
Editor's Notes
Nothing new (telco in the past)Requirements for modern IT era & IoT
react to events the event-driven nature enables the following qualitiesreact to load focus on scalability by avoiding contention on shared resourcesreact to failure build resilient systems with the ability to recover at all levelsreact to usershonor response time guarantees regardless of load
* No tiersHolographic, across the entire tech stack, top to bottom, weakest linkAsync app implements loosely coupled design better RATHER THAN method callsMessage-passingInteract through consumption/production of (PUSH)events => message passing => better hardware utilizationNon-blocking => responsive at all timesNo state, locking, synchronizationThinking of event propagation & component interaction rather than low-level threading primitives
Elasticity
Resilience on the component level instead on app server level Premise: inerherintly unreliable networkMake failure scenarios explicit in the programming model redundancy and fault-toleranceMake failure a first class construct Isolate failureManageable from outside the failed contextEncapsulate failure+context => sent to failure managers that react
Responsive, real-time interactionKeep latency consistent regardless of load => O(1)protection against slow producers/consumersObservable models (no locking), event streams, stateful clients