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, such systems should be responsive, resilient, elastic, and driven by messaging.
Now, you should know how to transform your data, filter your collections, and find elements within the collection that meet your criteria.
You should also better understand the difference between cold and hot streams. A cold stream, such as a flow, starts working only when someone subscribes to it. A new subscriber will usually receive all of the events. On the other hand, a hot stream, such as a channel, continuously emits events, even if nobody is listening to them. A new subscriber will receive only the events that were sent after the subscription was made.
We also discussed the concept of backpressure, which can be implemented in a flow. For example, if...