Automatons · Federation 2

Где именно живут Hive и Apollo

Это не две конкурирующие технологии. @apollo/composition компилирует схемы в supergraph, а Hive Gateway Runtime использует этот supergraph, чтобы обслуживать реальные GraphQL-запросы.

Issue #2 · внутренний gateway · 127.0.0.1:4000
graphql-federation :4000 один маленький Node.js/TypeScript процесс Browser Vue SPA только public edge Caddy TLS / ingress front-console :3000 session auth POST /api/graphql GraphQL request SCHEMA REFRESH / CONTROL PATH graph.yaml name + URL pollInterval timeouts Наш glue poll + fetch SDL validate config atomic promote @apollo/ composition SDL → supergraph Federation 2 compiler не обслуживает requests INVALID — НЕ PROMOTE REQUEST / DATA PATH Hive Gateway Runtime HTTP /graphql validate operation · query plan route to subgraphs · merge response health · graceful shutdown · headers Disk LKG supergraph SDL hash timestamp subgraph names last-known-good valid supergraph serve previous graph feed-gathering :4001/graphql _service { sdl } Federation 2 subgraph future-service :4002/graphql _service { sdl } добавляется в YAML SDL refresh query plan cross-subgraph новый SDL сломан / недоступен
Сегодня

`@apollo/composition` собирает supergraph из одного `feed-gathering`; Hive Runtime обслуживает `/graphql` и маршрутизирует запросы в него. Да, сейчас это выглядит как умный proxy — зато контракт frontend уже перестаёт зависеть от конкретного backend.

реальный request SDL / composition last-known-good
Компилятор схем

@apollo/composition

Запускается только при старте и refresh. Берёт Federation SDL всех subgraphs и выдаёт единый supergraph SDL.

  • ловит конфликты владения и типов;
  • не принимает пользовательские запросы;
  • не является сервером.
Runtime запросов

Hive Gateway Runtime

Постоянно запущенный HTTP/runtime. Загружает готовый supergraph, строит query plan и исполняет его по subgraphs.

  • /graphql и introspection;
  • routing + merge response;
  • никакого Hive control plane.
Наш тонкий слой

Config + polling + LKG

Issue #2 добавляет только недостающую operational glue, а не пишет свой GraphQL gateway.

  • YAML и таймауты;
  • atomic promotion;
  • disk fallback и health states.
feed-gathering #123Даёт зелёному subgraph-блоку Federation SDL через `_service`. graphql-federation #2Создаёт всю большую рамку gateway: Apollo composition + Hive runtime + наша маленькая operational glue. front-console #88Переводит браузерный трафик на `POST /api/graphql`, оставляя старый route для rollback.