Reactive streams guidelines, patterns and anti-patterns

by levant pied   Last Updated March 14, 2019 20:05 PM

This is a question about reactive / observable streams, MVI and similar. It's a set of sub-questions, but I feel they are very coupled, so posting it as one question to capture the similarities.

I've been trying to learn concepts around this and I've run into several problems while doing that. Here are my observations:

  • Resources (articles, books, videos) are either too low-level (just discussing the API) or too high-level (how to connect two microservices). No discussion about the problems and solutions with using observables within a medium-size app

  • Examples are almost always toy examples with 1-3 streams. No discussion about the problems you face when you have 20 or 100 streams and solutions to those

  • Examples are also almost always static. Streams are pre-wired on startup. No discussion about the problems and solutions related to cases where streams come and go, managing subscriptions and such

  • There are many disagreements and contradictions. Some people suggest using subjects a lot, others suggest never using them. Some people suggest using streams everywhere, some only on the fringes of the system. Some are in favor of a lot of small events and streams, while others prefer coarse-grained structure

Questions arising from the above:

  • Are there medium-sized open-source apps built using reactive streams that I can look at to try to answer these questions myself?

  • Are there any resources that I missed provide answers to some of the questions above?

  • Do you have personal experience with either reactive streams or any other reactive system from which patterns / anti-patterns translate to reactive streams?

  • In general, is there a list of guidelines, patterns and anti-patterns when using reactive streams in medium-sized apps?

Related Questions

Listen for data(base) changes using Clean Architecture

Updated September 12, 2017 09:05 AM

When should I use Reactive web framework

Updated December 18, 2018 00:05 AM