Почему не каждый сервис должен быть асинхронным

Асинхронность стала де-факто стандартом в backend-разработке. FastAPI, Node.js, async/await - создается ощущение, что “нормальный” сервис просто обязан обладать асинхронностью. И да, действительно, если мы разрабатываем высоконагруженную систему - с высокой конкурентностью и большим количеством I/O операций - мы используем асинхронную модель. Это даже звучит, как аксиома.
Однако, из-за этого возникает опасное упрощение: если сервис “современный”, он должен быть async по умолчанию.
На практике, это не всегда так. Более того - иногда асинхронность не даёт заметного выигрыша, а лишь утяжеляет архитектурную сложность проекта. Использование async/await меняет модель выполнения кода и порождает определённый класс ошибок, с которыми сталкивается разработчик. Разберём это утверждение подробнее:














