The Reactive Manifesto: Message-driven, Resilient, Elastic, Responsive - Stefano Baghino - MTS...
-
Upload
codemotion -
Category
Software
-
view
553 -
download
5
Transcript of The Reactive Manifesto: Message-driven, Resilient, Elastic, Responsive - Stefano Baghino - MTS...
The Reactive Manifesto Message driven, Fault tolerant, Elastic, Responsive
Hello! I am Stefano Baghino
Software Engineer @ DATABIZ Regular Attendee @ MTS I code. Therefore, I introduce bugs.
0. Reactive what? What are we going to talk about?
Reactive Programming
Reactive Programming
Functional Reactive Programming
Reactive Programming
Functional Reactive Programming
Reactive Systems
1. Responsiveness Never too late!
What does it mean “to be responsive”?
Responsive
Responsive
Performance
Boom! Nailed it! End of story.
Right?
Let’s take a little step back
We live in a new world
� Billions of users are on the Internet at any time
� IoT will push the challenge up a notch
� The world runs faster than your server
Responsive
Scalable
Being scalable is not enough
Responsive
Elastic
Even elasticity is not enough
Responsive
Elastic Fault tolerant
2. Solid foundations How do we get there?
Decouple all the things!
� Decoupling is the key
� Loosely coupled components scale well
� Loosely coupled components can be more resilient
Responsive
Elastic Fault tolerant
Decouple all the things!
� We need a way to decouple our components
� Asynchronous message passing is ideal
� If naturally fits distributed systems
Message driven can also mean event driven
Forwarding
Request / Response
Message broker
Responsive
Message driven
Elastic Fault tolerant
Good, how can we do it?
A couple of words on the Actor Model
� A model for concurrent computation
� Actors can only react to asynchronous messages
� When a message arrives, they can only:
1. send a message
2. create a new actor
3. change their own behaviour
Actors: great for fault tolerance
Interested? Codemotion got you covered!
The four traits of Reactive Systems
1. Responsive → React to clients
2. Elastic → React to load
3. Fault tolerant → React to failure
4. Message driven → React to stimuli
What is the Reactive Manifesto?
The Reactive Manifesto is an initiative to define a tech
agnostic shared vocabulary, to define an architectural
pattern for Reactive Systems.
It’s not about dogmas, it’s about critical thinking.
What is the Reactive Manifesto?
Go home, read it.
If you agree, you can sign it.
If you don’t, debate. It’s only good.
If you think you can improve it, make a PR.
www.reactivemanifesto.org
Thanks! Debate time? Or is it pizza? Hey! I’ll be a speaker at Codemotion too! Interested in Big Data? I’ll talk about Apache Spark!
You can find me at: @stefanobaghino [email protected]