Exploring Reactive Programming

Until now, we described our application as a mixture of very famous industry buzz words, such as asynchronous, real-time, loosely coupled, scalable, distributed, message-driven, concurrent, non-blocking, fault tolerant, low latency, and high throughput. In this chapter, we'll go one step further and understand reactive programming, which brings together all of these characteristics. We will see and understand the Reactive Manifesto—a set of principles that when collectively applied, will bring all of the preceding advantages. We will understand some key aspects of a reactive microservice, what it should be, and what are the key advantages of reactive programming. We will look at what problems reactive programming solves, different styles of reactive programming, and more.

In this chapter, we will focus on the following:

  • Introduction to reactive programming
  • Reactive Manifesto
  • Reactive microservice—major building blocks and concerns
  • When to react and when not to react (orchestrate)—introduction to hybrid approaches
  • Being reactive in Node.js