Есть сложный многоступенчатый процесс обработки данных, каждая фаза асинхронная, и в итоге данные запишутся на диск. То есть результат как таковой не нужен, а о каждой фазе хочется оповещать подписчика, который всю эту цепочку запустит.
Пусть Observable для каждого этапа возвращает некий общий тип StageResult с информацией о выполнении конкрентого этапа. А потом по ним сделать Observable.merge.