запросе данных, если в кэше нет, то идёт в БД, и по получению данных прямо в цепочке кладёт данные в кэш
ну и отдаёт результат дальше подписчику по цепочке
это по твоему не верно?
т.е. запись данных из БД в кэш прямо в цепочке это сайд эффект?
Нет. Если у тебя АПИ для кэша и БД сделаны реактивными, и ты используешь их для построения rx чейна. Я к тому, что если у тебя class N { private Data data; … void callback(Observable obs) { obs.flatMap(Data data -> { this.data = data; … } } }
по этому кейсу ещё 1 вопрос может Я чего-то не знаю об RX если нужно записать данные из БД в кэш в цепочке и сделать это не в отдельной парралельной цепочке, а линейно в текущей если парралельно, то например можно делать doOnEach(item -> saveInCache(item).subscribe() ) а если линейно, то Я придумал только через flatMap(item -> saveInCache(item).andThen(Obserbable.just(item)) можно ли как-то по другому
что зн. нет данных в бд? а если есть, но устарели? имхо правильно так. д.б. 1 источник правды - это удаленный бэкенд. в бд просто кэш кот. устаревает. если кэш устарел, то обновляем. а если как вы в цепочке ложить в кэш, то зачем он тогда? если вы все равно полезли в сеть?
Обсуждают сегодня