Я не могу согласиться с 2, когда речь идет о синхронном обслуживании.Я не думаю, что вы можете сделать некоторые части синхронными, другие части асинхронными.Конечно, вы можете сделать это так, однако, тогда вы потеряете все хорошие стороны реактивного программирования.Если какая-то часть кода является блокирующей, а другая - неблокирующей, то и неблокирующая часть также будет заблокирована;) Переход к реактивному программированию требует другого подхода и прочего, однако, если вы это сделаете, тогда тестирование асинхронноуслуги не так сложно.Я бы сказал, что если вы переключитесь на реактивный веб-фреймворк (web-flux), лучше сделать каждую часть кода асинхронной.