Пытаюсь показать в чем суть федеративного графа
Получилось долговато, но надеюсь что суть понятна, ключевые плюшки:
- Я как разработчик сервиса могу его разрабатывать, запускать и деплоить независимо от всех остальных сервисов (читай для разработки мне не нужно подмывать окружения 100500 других сервисов)
- Я как разработчик сервиса не парюсь, что же понадобиться клиенту из другой сущности, т.к. я возвращаю только ее id, а дальше клиент по ней сможет забрать все что его душе угодно
- Мы как команды пилящие сервисы можем дополнять сущности друг друга, при этом не мешая друг другу и не вклиниваясь в спринты друг друга
- Используя graph manager я как разработчик сервиса, могу посмотреть какие поля больше не нужны и спокойно удалить их из своего сервиса, что бы не было хлама
- Используя graph manager я как разработчик сервиса, получу ранний фитбек, о том что внесенные мною изменения в сервис поломают пару клиентов с указанием на примеры запросов которые они шлют
Есть и пару минусов:
- В федерации начинаются проблемы если два сервиса обявили два типа с одинаковым именем и разными полями - гейт в таком случае говорит, что нет, я так работать не буду т.к. не знаю куда слать запросы, никто не объявил себя влядальцем сущности
- В graph manager нельзя просто так взять и удалить поле, нужно делать все по честному, аля объявлять его deprecated, обновлять клиентов и уже затем удалтять иначе оно просто не запустится
30 сен 2024