ЮБ
Size: a a a
ЮБ
ЮБ
λ
λ
λ
ЮБ
???.evalMap(msg.publish).parEvalMap(maxPublishBufferSize)(identity)
msg.publish на самом деле ничего не паблишит. Он только добавляет сообщение в буфер на паблишинг. Это внешний F. Сделующим шагом я дожидаюсь внутреннего F — он отрабатывает, когда данные из буфера успешно отправлены в кафку. Чтобы не ждать каждого сообщения (то есть не делать буфер размером 1) я делаю parEvalMap(maxPublishBufferSize)(identity), где maxPublishBufferSize — достаточно большое число. В кафка клиенте уже и так есть куча настроек этого буффера, поэтому мне нет смысла (обычно) ещё и на приложении делать какое-то ограничение буфера. Поэтому maxPublishBufferSize я выбираю заведомо больше, чем может влезть в буфер. И получается, что когда буффер отправляется в кафку, сразу пачка этих внутренних F внутри parEvalMap резолвится и идёт дальше по стриму.ЮБ
λ
λ
ЮБ
ЮБ
λ
λ
ЮБ
λ
λ
KS
KS
Похоже у него фейрнес совсем на дне - таки не новость, авто yield нет, если какие-то файберы заняли трендели, то будут ранлуп гонять до посинения, пока не закончатсяЮБ