А нормально ли "тащить" данные в в обёртке типо <Success, Failure> прям до ViewModel и там уже отобразить их во View? Или всё-таки нужно ещё до этого "развернуть" обёртку в entity бизнес-логики? Особенно интересует это, чтобы понять где обрабатывать результат suspend функции.
У нас rx, с корутинами не работал, так что не знаю как там это конкретно реализовывается.
Ты в репозитории получаем данные или ексепшен. Исключения проверяем, можем ли их обернуть в ожидаемые исключения, и пробрасываем через onError. В интеракторе логика получает данные, работает с ними и если получается ошибка логики, то отдается <Success, Fail>. В презентере обрабатываются хорошие данные и ошибки логики. А ожидаемые исключения пробрасывается в ErrorHandler и там обрабатываются одинаково.