В общем когда 3 года назад погрузился в Angular2+ и Observable, то концепция мне понравилась.
Было просто невероятно удобно работать с кучей асинхронных событий, при этом кода было мало и он легко читался.
Потом я понял, что много кто (в том числе коллеги) не понимают толком - как это дело работает.
Я решил что дело в отсутствии нормальной документации на русском языке и написал такую:
О типичных вариантах использования Observable в Angular
Сейчас склоняюсь к тому, что концепт этот сложноват. Мало кто хочет разбираться в нем подробно или просто не имеет времени.
А те, кто разобрался, начинают испытывать проблемы, когда всё это смешивается со стейтом (ngrx/data).
Потому что внимание надо держать на максимуме, легко оставить подписку незавершенной, откуда сайд эффекты, сложновоспроизводимые баги и утечки памяти.
Добавим к этому DI, о нюансах работы которого тоже забывают и получаем сложную систему не устойчивую к ошибкам.
А система должна быть устойчива к ошибкам в коде. То есть пришёл программист, который не особо вникая наговнякал фичу и залил её в мастер, пока мейнтейнер на больничном. При этом ничего не должно ломаться, даже если программист сделал что-то неправильно и часть кода без тестов.