Featured Post

Event Sourcing Video from Michael Ploed

Event Sourcing I want to share a great video I found few days ago that describes very well what Event Sourcing is.

Friday, February 9, 2018

REACTIVE MANIFESTO, REACTIVE PROGRAMMING

REACTIVE MANIFESTO

The four principles of the Reactive Manifesto are:

Responsive

Responsiveness is the capability of a system  to respond in a timely manner in respect of usability and utility. It encourages rapid response in order to provide a greater quality of service.

Resilient

Resilience is the capability of a system to stay responsive in the case of failure.

Resilience is achieved by isolating components and ensuring that when they fail does not compromise the entire system. 
Provide resilience means to identify component that has a business critical functionality and assign to each component a score in your system. 
The first citizien in resilience is identify and classify functionalities that if do not perform well, take the entire system to be useless.

Elastic

Elastic is the capability of a system to responsive when its workload changes.

The increase or decrease of worload must be handled in a way every component still run at the same quality level in term of performance and reliability.

The core concept is to distribute input of the entire system over many components. This capability of a system is achieved by replicating components, avoiding bottlenecks.

Message Driven

Message Driven system makes use of asynchronous messages that realize:

  1. Decoupled components
  2. Defined system boundary
  3. Enhanced flow control
  4. Let components collaborate without disturbing eachother
  5. Work in a location transparency environment.

REACTIVE PROGRAMMING

Reactive programming is a paradigm that tells a consumer to react to the data as it comes in. The practice of using asynchronous events to propagates event changes, pave the way to put business operations to be executed in reaction of notified event.

Reactivex is a project which provides implementations for this concept for different programming languages. 

No comments :

Post a Comment