Skip to content

Latest commit

 

History

History
69 lines (51 loc) · 3.77 KB

File metadata and controls

69 lines (51 loc) · 3.77 KB

Apollo Subscriptions at Scale — Version Matrix

Last updated: February 2026 All versions pinned to latest stable releases. This file is the single source of truth for all dependency versions across the project.

Core Apollo Stack

Component Package / Image Version Notes
Apollo Federation Spec version v2.12 LTS with Router v2.10. Introduces @cacheTag directive
Apollo Router ghcr.io/apollographql/router v2.10.x LTS until Sep 2026. Response caching GA
Apollo Server @apollo/server v5.4.0 v4.x is EOL since Jan 26, 2026. Must use v5
Apollo Subgraph @apollo/subgraph latest (compatible with AS5) buildSubgraphSchema function
Apollo Client @apollo/client v4.x (latest) Multipart HTTP subscriptions, RetryLink, ErrorLink
Rover CLI rover latest Supergraph composition (rover supergraph compose)

Infrastructure

Component Image Version Notes
Redis redis:7.4-alpine 7.4.x AOF persistence, 256MB max memory
Kafka apache/kafka latest (4.1.x) Official Apache image, KRaft mode (no ZooKeeper). Bitnami images no longer free.
Kafka UI provectuslabs/kafka-ui latest Optional, for visual inspection

Subgraph Dependencies (Node.js)

Package Version Purpose
@apollo/server ^5.4.0 GraphQL server runtime
@apollo/subgraph ^2.x Federation subgraph utilities
graphql ^16.x GraphQL core
graphql-tag ^2.x gql template literal
kafkajs ^2.x Kafka client for Node.js
express ^5.x HTTP server framework
@as-integrations/express5 ^1.x Apollo Server + Express 5 integration
cors ^2.x CORS middleware

React Web App Dependencies

Package Version Purpose
react ^19.x UI framework
react-dom ^19.x DOM rendering
@apollo/client ^4.x GraphQL client with subscriptions
graphql ^16.x GraphQL core
react-router-dom ^7.x Client-side routing

Helm / Kubernetes

Component Version Notes
Helm v3.x Chart templating
Kubernetes 1.28+ StatefulSet, headless Services
Bitnami Redis chart latest Optional: replaces hand-rolled Redis deployment
Bitnami Kafka chart latest Optional: replaces hand-rolled Kafka StatefulSet

Key Compatibility Notes

  1. Apollo Server 5 + Subscription Callback Plugin: The ApolloServerPluginSubscriptionCallback plugin is available in AS5 via @apollo/server/plugin/subscriptionCallback. The plugin now uses Node.js built-in fetch by default (instead of node-fetch in v4).

  2. Federation v2.12: Released alongside Router v2.10 LTS. Subgraph schemas must declare @link(url: "https://specs.apollo.dev/federation/v2.12", ...).

  3. Router v2.10 LTS: LTS support until September 2026. Includes GA response caching, improved Redis connection pool handling, and subscription callback protocol support.

  4. Apollo Client v4 + Multipart HTTP: Apollo Router does NOT accept direct WebSocket from clients. Subscriptions from clients use HTTP multipart protocol. Apollo Client v4's HttpLink handles this natively — no GraphQLWsLink needed for client↔Router communication.

  5. Kafka Official Image: The bitnami/kafka images were moved behind a Broadcom paywall (Sep 2025). We use the official apache/kafka image which runs in KRaft mode by default. Env var convention: KAFKA_ prefix with dots replaced by underscores (e.g., num.partitionsKAFKA_NUM_PARTITIONS). CLI tools are at /opt/kafka/bin/.

  6. Node.js: Apollo Server 5 requires Node.js v20.0.0+. Recommend using latest LTS (v22.x).