Reactive principles
We'll start this chapter with a brief detour into Reactive programming, as it forms the foundation of the data streaming concept.
Reactive programming is a paradigm based on functional programming in which we model our logic as a set of operations in a data stream. The fundamental concepts of reactive programming are summarized nicely in The Reactive Manifesto (https://www.reactivemanifesto.org).
According to this manifesto, reactive programs should be all of the following:
- Responsive
- Resilient
- Elastic
- Message-driven
To understand these four principles, we'll use an example.
Let's imagine you are calling your Internet Service Provider, since your internet is slow, for example. Do you have this picture in your mind? Let's start then.
Responsive principle
How much time are you willing to spend waiting on the line? That depends on the urgency of the situation and how much time you have. If you're in...