Я новичок в реакторном и реактивном программировании и пытаюсь решить приведенный ниже случай.
Я получаю поток объектов из темы Кафки, и для каждой записи в потоке мне нужно вызвать 2 службы иподтвердите объект.
public void consume(Flux<Data> flux)
{
flux.map(data->callRESTService1(data)).map(...<I need the data once again here to call rest service 2>
}
Сейчас я использую следующий стиль для достижения этой цели, но есть ли лучший / правильный способ сделать это?
public void consume(Flux<Data> flux)
{
flux.subscribe(data->handleData(data));
}
public void handleData(data)
{
Flux.concat(callRestService1(data),callRestService2(data)).reduce(data,reduce());
}
Кроме того, если один изслужба не работает, мне нужно сообщить об ошибке слушателю, чтобы сообщение не было подтверждено, но в другом случае, если проверка не удалась, нужно опубликовать сообщение в другой теме.