reactive microservices

30
Microservices Architecting in a reactive way

Upload: anderson-braz

Post on 16-Aug-2015

217 views

Category:

Software


4 download

TRANSCRIPT

Page 1: Reactive microservices

Microservices

Architecting in a reactive way

Page 2: Reactive microservices

Braz, Anderson

Software Engineer

Java Man since 2000, postgradute,

open source contributor, speaker

and training consultant

mrbrazjava

Page 3: Reactive microservices

Monolith Microservices

Page 4: Reactive microservices
Page 5: Reactive microservices
Page 6: Reactive microservices

Why is responsiveness

now more important than

ever?

Mobile

Devices

Cloud

Environment

Multicore

Architecture

Real-time Interactive Collaborative

Page 7: Reactive microservices

Reactive

“Readly responsive to a stimulus”

Responsive (React to Users)

Resilient (React to Failure)

Elastic (React to Load)

Message Driven (React to Events)

Page 8: Reactive microservices

Message Driven

“The flow of the program is determined by events”

Page 9: Reactive microservices

Immutability

Avoid share mutable states and objects

Page 10: Reactive microservices

Avoid Blocking

Kills Scalability and Performance

Page 11: Reactive microservices

Elastic

“Capable of being easily

expanded or upgraded on demand”

Page 12: Reactive microservices

How do I know if I have a

performance problem?

Page 13: Reactive microservices

How do I know if I have a

scalability problem?

Page 14: Reactive microservices

The network is

inherently unreliable

Page 15: Reactive microservices

The fallacy about

Distributed Computing

State and Objects

Transaction

Page 16: Reactive microservices

Embrace the network

“Be of the web, not behind the web”

Page 17: Reactive microservices

Location

Transparency

“It is not about ESB stupid”

Page 18: Reactive microservices

Resilience

“The capacity to recover

quickly from difficulties”

Page 19: Reactive microservices

Old school way

Page 20: Reactive microservices

Old school way

Error

Response Worst in a

Multi Thread

Page 21: Reactive microservices

Worst in a

Multi

Thread

Old school way

Page 22: Reactive microservices
Page 23: Reactive microservices

Doing Better

Failure is

an Event

Avoid

Cascading

Manage

locally

Isolate

the failure

Page 24: Reactive microservices

Responsive

“Quick to respond or react

appropriately”

Page 25: Reactive microservices

Keep latency consistent

Page 26: Reactive microservices

Asynchronous Events

Loosely coupled architecture

Lower Latency

Better Throughput

Page 27: Reactive microservices

Batching

App

Middleware

TCP

IP

NIC

Page 28: Reactive microservices

Performance

vs

Scalability

Latency

vs

Throughput

Availability

vs

Consistency

Page 29: Reactive microservices

Reactive

“Readly responsive to a stimulus”

Page 30: Reactive microservices

Braz, Anderson

Software Engineer

Java Man since 2000, postgradute,

open source contributor, speaker

and training consultant

mrbrazjava