Строгий protobuf-контракт в gRPC обеспечивает типизацию, защищает от сбоев в интеграциях и... Может ограничивать. Например, когда транзитный сервис приходится обновлять ради изменений, нужных только конечному пользователю.
Привет, это Владислав Свиридов из команды product-facade. В
хабрастатье я разобрал три механизма protobuf, которые помогают гибко обходить ограничения без отказа от контрактов. Это:
Unknown Fields — сервис не знает часть полей, но может сохранить и передать их дальше;
google.protobuf.Any — сервис может передавать сообщения разных типов через один контракт;
dynamicpb — сервис работает с protobuf-сообщением, имея только его runtime-дескриптор.
Если в вашей микросервисной архитектуре скорость эволюции схем опережает скорость перевыпуска сервисов, рекомендую познакомиться с этими способами прямо сейчас
#ozontech_habr #go
Обсуждение 11
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram