Проверка данных является критической точкой, поэтому, на мой взгляд, было бы лучше синхронизировать этот процесс.
Более того, если flatMap (this :: validateEmpId) вернет Mono.error (smth), ваши следующие валидаторы не будутне будет выполнен, поэтому вы не сможете вернуть полное сообщение об ошибке.
Автор В этой статье используется Validator в проекте webflux (реактор), поэтомуЯ считаю, что в вашем примере лучше было бы что-то вроде этого:
public Mono<Emplyoee> doValidate(Emplyoee emp){
/*validate */
if(valid) {
return Mono.just(emp);
} else {
return Mono.error(err);
}
}