стрима?
мой юзкейс: приделывание request based http интерфейса к flow на акка стримах.
есть Flow[Request] который запущен при старте приложения и который делает 5-6 этапов обработки запроса.
для того чтобы в этот flow напихать запросов приходящих по http используется MergeHub.
для отслежвания прогресса и отдачи ответа в ждущий http connection я к каждому элементу добавляю Promise[Response] которая будет завершена как элемент будет обработан, и результат будет отправлен клиенту.
что мне не нравится тут: если стримов несколько, то нужно много mergeHub чтобы их соединять, что приводит к большому количеству Source.single(req).via(mergeHub) если нужно интегрироваться с Future-based интерфейсами. Плюс надо протаскивать Promise[Result] везде, но видимо без этого никак.
если я бы использовал FS2, выглядело бы это более элегантно?
я делал стрим either'ов (на шарпах, правда), в итоге забил на стримы вообще, слишком муторно прокидывать все данные, необходимые для корректного проброса
привет, а как ты это проверять хочешь?
fs2 в целом более слаб для таких задач, где есть ветвления. Ну и выглядит так, что твоя задача как-то плохо ложится на стрим.
Обсуждают сегодня