Reactive Programming and the RX (r)evolution


Meetup at DevDay

Lately i’ve conducted a meet-up at DevDay, an Italian Developer Community, to present the Reactive Programming Paradigm and Reactive Extension.

I believe in this approach and would like to share my experience, so I’ve presented a “slide deck” (embed at the end) and below is reported its summary.


1. The Reactive Manifesto

I’ve briefly introduced the Reactive Manifesto, underlining which are, in my opinion, the most important concepts coming out from it:

  • Asynchronous
  • non blocking
  • Message Driven
  • back-pressure
  • Resilient

2. Why use Reactive

Why the Reactive Systems are becoming so important in the modern age of the Microservices & Cloud ?

In this part I have introduced the importance of :

  • Let’s do it Asynchronous 
    * Async != Multi threads
    * Async == Never Block
  • Immutable State

3. When to be Reactive

When Reactive Programming could help you ? For developing which Applications ?

In particular, during this part, I’ve shared my personal path toward Reactive Functional Programming that is:

  1. FluentlyStart developing fluently using Builder pattern
  2. Fluently + FunctionalAdding Functional using as much as possible lambda
  3. Fluently + Functional + AsynchronousComplete using MessageLoop and Scheduler (mostly behind the scene)

4. Key Concepts (I have a Stream)

Obviously in this part we had deal with:

  • Stream
  • Observer/Observable
  • From Sequence to Marble Diagram
  • The Operators’ Land
  • HOT vs COLD Observable

5. How Develop Reactive

What is available to develop using Reactive Programming ?

The answer is: The Reactive Extension

… and finally … LET’S CODE with a sample using rxjs available on Github

Enjoy the Slides


Originally published at soulsoftware-bsc.blogspot.com.