GraphQL Federation, или Как не выстрелить себе в ногу / Иван Решетин, Игорь Малюк (Юла)

Sdílet
Vložit
  • čas přidán 3. 10. 2021
  • Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
    Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
    --------
    --------
    HighLoad++ Весна 2021
    Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем
    17 и 18 мая 2021. Москва, Крокус-Экспо
    Тезисы и презентация:
    www.highload.ru/spring/2021/a...
    Юла активно переходит на микросервисную архитектуру и год назад начала использовать GraphQL, внедрив её в новый gateway. Однако, за год мы столкнулись с определенными проблемами: растущее число внутренних сервисов и команд уже не позволяло так же быстро и гибко внедрять новый функционал, а изначально легкий gateway начал превращаться в очередной монолит.
    ...
    --------
    Нашли ошибку в видео? Пишите нам на support@ontico.ru

Komentáře • 2

  • @user-oo4cf2ji5g
    @user-oo4cf2ji5g Před 2 lety +2

    GraphQL, как известно, обладает query, mutation и subscription запросами.
    Как сказали в докладе, subscription федерацией (пока) не поддерживается.
    Но как и в оф документации apollo federation так и докладе обошли костыльную тему мутаций. Федерация, по своей задумке, должна была оградить клиента от понимания бизнес-логики приложения, и с запросами, которые выглядят как магия все так и есть. Клиент понятия не имеет об отсутствии монолита, и запрашивает все и вся.
    Но тут становится необходимо выполнить создание, обновление или удаление (львиная часть CRUD). Тут то магия федерации и пропадает. Ни в одном докладе, ни на форуме на вопросы про мутации (особенно вложенные мутации) нет ни одного вразумительного ответа. Проблема согласованности данных, конечно, это проблема любой сервисной архитектуры.
    Но федерация, по своей задумке, должна была оградить клиента от понимания бизнес-логики приложения. Ан нет, теперь бизнес-логика обязана переехать на клиента.
    Итого из query, mutation и subscription, федерация решает проблемы только с query.
    Есть ли у докладчиков план решения проблем с mutation?

    • @devdevelop1891
      @devdevelop1891 Před 2 lety +2

      Привет!
      Про мутации было соглашение: межсервисных мутаций не должно быть. Т.е. использовали так называемые namespaced мутации, когда каждый сервис объявляет свою глобальную мутацию, а в ней уже описываются все конкретные.
      Или я не понял вопрос..