Помогаю командам перевести обмен между сервисами на gRPC и Protocol Buffers — с предсказуемой скоростью и строгой типизацией. Работа всегда идёт от контракта: описываю сообщения и методы в proto-файле, отношусь к нему как к рабочему коду и генерирую из него серверы и клиенты. Так интерфейс перестаёт быть договорённостью на словах и становится проверяемым артефактом, а несовместимая правка всплывает при сборке, а не у пользователя.
Довожу решение от описания до боевой нагрузки. Раскладываю доменную модель в protobuf, выбираю форму вызова под задачу — запрос-ответ, поток от сервера, поток от клиента или двусторонний обмен — и аккуратно закрываю дедлайны, повторные попытки, отмену и разбор ошибок. Если часть клиентов умеет только обычный HTTP, ставлю шлюз в REST поверх тех же proto-определений, чтобы не держать два несвязанных описания одного и того же.
Отдельно занимаюсь тем, без чего gRPC тяжело эксплуатировать: кодогенерацией сразу под несколько языков, аккуратным версионированием, перехватчиками для аутентификации, метрик и трассировки и замерами задержек под реальным трафиком. На выходе — компактное и быстрое взаимодействие микросервисов, устойчивое к росту продукта.
Довожу решение от описания до боевой нагрузки. Раскладываю доменную модель в protobuf, выбираю форму вызова под задачу — запрос-ответ, поток от сервера, поток от клиента или двусторонний обмен — и аккуратно закрываю дедлайны, повторные попытки, отмену и разбор ошибок. Если часть клиентов умеет только обычный HTTP, ставлю шлюз в REST поверх тех же proto-определений, чтобы не держать два несвязанных описания одного и того же.
Отдельно занимаюсь тем, без чего gRPC тяжело эксплуатировать: кодогенерацией сразу под несколько языков, аккуратным версионированием, перехватчиками для аутентификации, метрик и трассировки и замерами задержек под реальным трафиком. На выходе — компактное и быстрое взаимодействие микросервисов, устойчивое к росту продукта.