Summary
This chapter was dedicated to practicing functional programming with reactive principles and learning the building blocks of functional programming in Kotlin. We also learned about the main benefits of reactive systems. For example, according to the Reactive Manifesto, such systems should be responsive, resilient, elastic, and driven by messaging.
You should now have a solid understanding of how to manipulate data, filter collections, and locate elements within collections that fulfil specific conditions.
We also examined the key distinctions between cold and hot streams. In a cold stream like a Kotlin Flow, data is emitted only when a subscription is active, and typically every new subscriber receives all the events from the beginning. In contrast, a hot stream like a channel is in continuous operation, emitting data regardless of whether there are active subscribers or not. A new subscriber to a hot stream only receives events emitted after their subscription becomes...