Я думаю, что для вас важно еще немного изучить и изучить и прояснить некоторые из этих концепций, с которыми вы имеете дело.
С точки зрения служб синхронизации и асинхронности, я немного погуглил и случайно выбрал эту страницу, которая, кажется, дает хорошее определение терминов:
Если вызов API является синхронным, это означает, что выполнение кода будет блокировать (или ждать) возврата вызова API перед продолжением.
Асинхронные вызовы не блокируют (и не ждут) возврата вызова API с сервера. Выполнение продолжается в вашей программе, и когда вызов возвращается с сервера, выполняется функция «обратного вызова».
Ваше утверждение о том, что "асинхронная операция является более мощной, чем синхронная", кажется ошибочным. У каждого из них есть свои приложения, подходящие для разных сценариев. Если у вас есть конкретный сценарий, который вас волнует, это поможет сузить вопрос.
Вот определение gRPC :
gRPC - это современная высокопроизводительная среда RPC с открытым исходным кодом, которая может работать в любой среде.
Ключевым моментом здесь является RPC или «Удаленный вызов процедур». В gRPC вызов является синхронным, даже если он потоковый: соединение открыто, запрос отправлен / передан в потоковом режиме, ответ отправлен / передан в потоковом режиме, а соединение закрыто. Разработка «асинхронного сервиса» подразумевает второй вызов в обратном направлении, что не относится к сфере самой gRPC. Я думаю, вы могли бы использовать gRPC для такого рода вещей, но я не думаю, что это нормально.
В противном случае я бы посоветовал вам прочитать руководство gRPC Основы , а также пример кода . Он также доступен на Python, если вы заходите на сайт gRPC.