37
Reactive Architecture

Reactive Architecture

Embed Size (px)

Citation preview

Page 1: Reactive Architecture

Reactive Architecture

Page 2: Reactive Architecture

Reactive ArchitectureWhat’s it all about?

Page 3: Reactive Architecture

2005

Hyundai Elantra looks like this…Internet has 1 billion usersFacebook has 5.5 million usersTwitter doesn’t exist yetMySpace is acquired for $850,000,000Youtube is launched

Page 4: Reactive Architecture

2016

Hyundai Elantra looks like this…Internet has 3.5 billion usersFacebook has 1.5 billion usersTwitter has 0.31 billion usersYoutube has 1.3 billion users

Page 5: Reactive Architecture

A SINGLE website may now handle as much traffic as the ENTIRE (!) Internet did

a decade ago…

Page 6: Reactive Architecture

We need to change the Paradigm!

Page 7: Reactive Architecture

Vehicle Fleet TrackerApplication Breakdown

Page 8: Reactive Architecture

Requirements

Track GPS Locations

Assign transits

Optimise routes

Monitor vehicle stats

Calculate costs

Page 9: Reactive Architecture

The Killer Feature:

Suggest speed and direction for:

Optimised fuel consumption

Optimised arrival speed

Optimise speed for ‘catching’ green lights

Page 10: Reactive Architecture

Presentation

Business Logic

Data Access

DB

Model

Multilayered Architecture (Old School)

Driver

Dispatcher

Page 11: Reactive Architecture

–Everett Dirksen

“A billion here, a billion there, and pretty soon you're talking about real money…”

Page 12: Reactive Architecture

We need to Scale up!

To make $$$

Page 13: Reactive Architecture

Alas, heavy loads pose heavy issues…

Page 14: Reactive Architecture

We Need to:

1. Keep the system Responsive - especially at peaks

2. Make sure the system doesn’t crash and is Resilient

3. Avoid extreme costs during downtime - Flexible

Page 15: Reactive Architecture

Responsive

Rapid and consistent response times

Achieved through:

Resilience

Scalability (Flexibility)

A Message-Driven foundation

Page 16: Reactive Architecture

Asynchronous Processing

The key is:

Page 17: Reactive Architecture

The Synchronous Approach

Cut Salad - 5 min

Make Toast - 3 min

Boil eggs - 10 min

Eat

…Took 18 minutes

Page 18: Reactive Architecture

The Asynchronous Approach

Boil Eggs - 10 min

Cut salad - 5 min

Make Toast - 3 min

Eat

…Took 10 minutes

Page 19: Reactive Architecture
Page 20: Reactive Architecture
Page 21: Reactive Architecture

We Achieve System-Wide Async via

Message DrivenArchitecture

Page 22: Reactive Architecture

Message-Driven

Process A

Process B

Process C

Page 23: Reactive Architecture

Message Driven Vs.

Event Driven

Messages have a specific recipient

Events can have multiple handlers

Page 24: Reactive Architecture

Reactive Architecture

Enter:

Page 25: Reactive Architecture
Page 26: Reactive Architecture

Responsive

Message Driven

ResilientElastic/Scalable

Reactive Manifesto

Page 27: Reactive Architecture

Message-driven Resiliency

Isolation

Location Transparency

Separate error channel

Page 28: Reactive Architecture

Message-driven Scalability

Scale out on demand

No shared mutable state

No hardware limitation

Page 29: Reactive Architecture

Implementation using Micro-Services

Page 30: Reactive Architecture

Micro ServicesMessage/Event driven

Resilient

Isolated and self contained

Clustered

Distributed

Elastic/Scalable

Page 31: Reactive Architecture

Implementation using Actor Based

Framework - AKA AKKA

Page 32: Reactive Architecture

What’s an Actor

An actor is a construct with the following properties:- A mailbox for receiving messages- The actor’s logic- Isolated state

Page 33: Reactive Architecture
Page 34: Reactive Architecture
Page 35: Reactive Architecture

SummaryTraditional Monolithic applications with thread based concurrency are:

Difficult to scale out

Not resilient

Prone to fail under stress

Reactive Architecture is a viable solution

Page 36: Reactive Architecture

Summary 2

The formula for Reactive Architecture is:

(Resilience + Elasticity) x Message-Driven = Responsive