Search⌘ K
AI Features

Reactive Principles

Explore the four key reactive principles—responsive, resilient, elastic, and message-driven—from the Reactive Manifesto. Understand how these principles improve system responsiveness, failure handling, scalability, and asynchronous message processing. Discover how to implement these concepts in Kotlin to build efficient, robust data streaming applications.

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. 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 we are calling our Internet Service Provider (ISP) because our internet is slow. Do we have this picture in our mind? Let’s start then.

Responsive principle

How much time are we willing to spend waiting on the line? That depends on the urgency of the situation and how much time we have. If we are in a hurry, ...