From 13e2b4f4212374b962c899385f59dd2abd19b806 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Mon, 10 Feb 2025 16:43:16 -0800 Subject: [PATCH 01/10] DOC-356 draft router v2 info page --- docs/source/routing/about-v2.mdx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/source/routing/about-v2.mdx diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx new file mode 100644 index 0000000000..538425fd83 --- /dev/null +++ b/docs/source/routing/about-v2.mdx @@ -0,0 +1,20 @@ +--- +title: GraphOS Router v2.x +--- + +GraphOS Router, version 2.x is an **Active** release with latest version {products.router.version("lts_2_latest").version}. + +| Current Status | Release Date | Latest Minor | Active Date | Maintenance Date | End of Life Date | +| -------------- | ------------ | ------------ | -------------- | ---------------- | ---------------- | +| Active | July 2024 | v{products.router.version("lts_2_latest").version} | February 2025 | - | - | + +As an [active](/graphos/reference/router-release-lifecycle#active) release: + +- Backwards-compatible minor releases are planned to ship monthly. +- Minor releases can contain new features, bug fixes, and security patches. +- Breaking changes may be required in extenuating circumstances. +- [Support](https://www.apollographql.com/enterprise/support) is provided via paid support plans until end-of-life. + +## Upgrading to router 2.x + +To upgrade to router v{products.router.version("lts_2_latest").version}, follow the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). \ No newline at end of file From b199f07dcfaae1fd3096149838f2c8fbc1188b68 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Mon, 10 Feb 2025 21:32:36 -0800 Subject: [PATCH 02/10] add highlights --- docs/source/routing/about-v2.mdx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index 538425fd83..b3da1d4f20 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -15,6 +15,24 @@ As an [active](/graphos/reference/router-release-lifecycle#active) release: - Breaking changes may be required in extenuating circumstances. - [Support](https://www.apollographql.com/enterprise/support) is provided via paid support plans until end-of-life. +## Key highlights of router 2.x + +### Simplified integration and API orchestration of REST services using Apollo Connectors + +The router introduces **Apollo Connectors for REST** to enable the router to directly call REST APIs alongside traditional GraphQL subgraphs. It improves the interoperability of the router with existing API architectures without the need to write tedious API integration code. + +> Follow the [REST API quickstart](/graphos/get-started/guides/rest-quickstart) to orchestrate your first API with Apollo Connectors. + +### Improved query planner performance + +The router is powered by a new **Native Query Planner** that achieves performance at scale with demonstrable improvement in CPU and memory utilization. It's written in Rust and replaces the legacy query planner written in JavaScript, thereby utilizing a simplified architecture and ensuring more efficient and performant query execution. + +> Learn more about the [native query planner](graphos/routing/query-planning/native-query-planner). + +### Predictable resource utilization and availability with backpressure management + +The router introduces **backpressure management** that enables more predictable memory and CPU consumption. It's especially beneficial for Kubernetes deployments, where the router can now provide timely signals to trigger Horizontal Pod Autoscaling (HPA) and maintain availability. + ## Upgrading to router 2.x -To upgrade to router v{products.router.version("lts_2_latest").version}, follow the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). \ No newline at end of file +To upgrade to router v{products.router.version("lts_2_latest").version}, including resolving breaking changes and using new capabilities, follow the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). \ No newline at end of file From 7e06b01a8959a53fa6351c578cf5c1e5b4fc8d47 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Tue, 11 Feb 2025 08:14:12 -0800 Subject: [PATCH 03/10] update content --- docs/source/routing/about-v2.mdx | 33 +++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index b3da1d4f20..e2160aa931 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -17,6 +17,8 @@ As an [active](/graphos/reference/router-release-lifecycle#active) release: ## Key highlights of router 2.x +The new, improved, and updated capabilities of router v2.x include the following key highlights. + ### Simplified integration and API orchestration of REST services using Apollo Connectors The router introduces **Apollo Connectors for REST** to enable the router to directly call REST APIs alongside traditional GraphQL subgraphs. It improves the interoperability of the router with existing API architectures without the need to write tedious API integration code. @@ -29,10 +31,35 @@ The router is powered by a new **Native Query Planner** that achieves performanc > Learn more about the [native query planner](graphos/routing/query-planning/native-query-planner). -### Predictable resource utilization and availability with backpressure management +### Predictable resource utilization and availability with back-pressure management + +The router introduces **back-pressure management** that enables more predictable memory and CPU consumption. It's especially beneficial for Kubernetes deployments, where the router can now provide timely signals to trigger Horizontal Pod Autoscaling (HPA) and maintain availability. + +### Secure and stable ecosystem + +The router depends on various external libraries, or crates, in the Rust ecosystem for networking, JSON processing, error handling, and more. With router v2.x, these dependencies have been updated to provide the most secure, stable, and performant runtime platform. + +Updated crates include `axum`, `http`, `hyper`, `opentelemetry`, and `redis`. Note that some updates may cause breaking changes. + +> To learn more, go to the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). + +### Improvements for consistency and usability + +Several smaller but significant changes have been introduced to reduce or eliminate inconsistencies in observability and configuration: + +- Updated Apollo operation usage reporting to use OpenTelemetry by default +- Renamed metrics to conform to OpenTelemetry naming conventions +- Improved validation of CORS configurations, preventing silent failures +- Added documentation for context keys, improving usability for advanced customers + +### Removals and deprecations + +Several configuration options, interfaces, and metrics were deprecated or removed in router v2.x, including the following: -The router introduces **backpressure management** that enables more predictable memory and CPU consumption. It's especially beneficial for Kubernetes deployments, where the router can now provide timely signals to trigger Horizontal Pod Autoscaling (HPA) and maintain availability. +- Removed the `--apollo-uplink-poll-interval` flag due to its ineffectiveness +- Removed various metrics as part of evolving towards OpenTelemetry metrics and conventions +- Removed interfaces deprecated in router v1.x ## Upgrading to router 2.x -To upgrade to router v{products.router.version("lts_2_latest").version}, including resolving breaking changes and using new capabilities, follow the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). \ No newline at end of file +To upgrade to the latest router v{products.router.version("lts_2_latest").version}, including resolving breaking changes and using new capabilities, follow the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). \ No newline at end of file From 3317f0fdedced307f8f7ece34cb941a54cd0e7f7 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Tue, 11 Feb 2025 19:38:28 -0800 Subject: [PATCH 04/10] copyedits --- docs/source/routing/about-v2.mdx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index e2160aa931..9fbdfcb820 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -1,5 +1,6 @@ --- -title: GraphOS Router v2.x +title: GraphOS Router v2.x Release Notes +description: About Apollo GraphOS Router version 2.x, including Long Term Release (LTS) status, key features, and how to upgrade --- GraphOS Router, version 2.x is an **Active** release with latest version {products.router.version("lts_2_latest").version}. @@ -15,15 +16,17 @@ As an [active](/graphos/reference/router-release-lifecycle#active) release: - Breaking changes may be required in extenuating circumstances. - [Support](https://www.apollographql.com/enterprise/support) is provided via paid support plans until end-of-life. -## Key highlights of router 2.x +## What's new in router v2.x -The new, improved, and updated capabilities of router v2.x include the following key highlights. +The new and updated capabilities of router v2.x include the following highlights. + +> For detailed descriptions of updates in router v2.x, go to the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). ### Simplified integration and API orchestration of REST services using Apollo Connectors The router introduces **Apollo Connectors for REST** to enable the router to directly call REST APIs alongside traditional GraphQL subgraphs. It improves the interoperability of the router with existing API architectures without the need to write tedious API integration code. -> Follow the [REST API quickstart](/graphos/get-started/guides/rest-quickstart) to orchestrate your first API with Apollo Connectors. +> Follow the [quickstart](/graphos/get-started/guides/rest-quickstart) to orchestrate your first REST API calls with Apollo Connectors. ### Improved query planner performance @@ -41,8 +44,6 @@ The router depends on various external libraries, or crates, in the Rust ecosyst Updated crates include `axum`, `http`, `hyper`, `opentelemetry`, and `redis`. Note that some updates may cause breaking changes. -> To learn more, go to the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). - ### Improvements for consistency and usability Several smaller but significant changes have been introduced to reduce or eliminate inconsistencies in observability and configuration: @@ -52,9 +53,9 @@ Several smaller but significant changes have been introduced to reduce or elimin - Improved validation of CORS configurations, preventing silent failures - Added documentation for context keys, improving usability for advanced customers -### Removals and deprecations +## Removals and deprecations -Several configuration options, interfaces, and metrics were deprecated or removed in router v2.x, including the following: +Several configuration options, interfaces, and metrics were deprecated or removed in router v2.x, including: - Removed the `--apollo-uplink-poll-interval` flag due to its ineffectiveness - Removed various metrics as part of evolving towards OpenTelemetry metrics and conventions From c99388266f3b468a479e53b968571db206d6a07e Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Wed, 12 Feb 2025 10:15:28 -0800 Subject: [PATCH 05/10] copyedit to What's New --- docs/source/routing/about-v2.mdx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index 9fbdfcb820..2ce93a0d1a 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -1,9 +1,13 @@ --- -title: GraphOS Router v2.x Release Notes -description: About Apollo GraphOS Router version 2.x, including Long Term Release (LTS) status, key features, and how to upgrade +title: What's New in GraphOS Router v2.x +description: What's new in Apollo GraphOS Router version 2.x, including Long Term Release (LTS) status, key features, and how to upgrade --- -GraphOS Router, version 2.x is an **Active** release with latest version {products.router.version("lts_2_latest").version}. +GraphOS Router v{products.router.version("lts_2_latest").version} is the latest Apollo runtime platform. This release introduces changes and enhancements that improve the router’s overall quality and establishes a strong foundation for new innovations, such as Apollo Connectors for REST. It also ships with the new Native Query Planner, optimized for efficiency and performance for high scale mission critical workloads. + +## Release status of router v2.x + +GraphOS Router v2.x is an **Active** release with latest version {products.router.version("lts_2_latest").version}. | Current Status | Release Date | Latest Minor | Active Date | Maintenance Date | End of Life Date | | -------------- | ------------ | ------------ | -------------- | ---------------- | ---------------- | @@ -18,7 +22,7 @@ As an [active](/graphos/reference/router-release-lifecycle#active) release: ## What's new in router v2.x -The new and updated capabilities of router v2.x include the following highlights. +Below are the key highlights of the new and updated capabilities in router v2.x. > For detailed descriptions of updates in router v2.x, go to the [router 1.x to 2.x upgrade guide](/graphos/reference/upgrade/from-router-v1). From ad3f49d9f8d0f96dc92b0a148f271d898fd3059f Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Wed, 12 Feb 2025 11:18:01 -0800 Subject: [PATCH 06/10] subtitle --- docs/source/routing/about-v2.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index 2ce93a0d1a..9ada3d0d77 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -1,5 +1,6 @@ --- title: What's New in GraphOS Router v2.x +subtitle: "" description: What's new in Apollo GraphOS Router version 2.x, including Long Term Release (LTS) status, key features, and how to upgrade --- From 52e30d4649f596c4c70bdbbeaafbb2c71690595d Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Thu, 13 Feb 2025 08:57:54 -0800 Subject: [PATCH 07/10] Update docs/source/routing/about-v2.mdx Co-authored-by: Chandrika Srinivasan --- docs/source/routing/about-v2.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index 9ada3d0d77..f199085979 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -47,7 +47,7 @@ The router introduces **back-pressure management** that enables more predictable The router depends on various external libraries, or crates, in the Rust ecosystem for networking, JSON processing, error handling, and more. With router v2.x, these dependencies have been updated to provide the most secure, stable, and performant runtime platform. -Updated crates include `axum`, `http`, `hyper`, `opentelemetry`, and `redis`. Note that some updates may cause breaking changes. +Updated crates include `axum`, `http`, `hyper`, `opentelemetry`, and `redis`. Note that some updates may cause breaking changes, please see [upgrade guide](https://www.apollographql.com/docs/graphos/reference/migration/from-router-v1) for more details. ### Improvements for consistency and usability From 48cdd5b7d4298d57ba01c18770177a53dc636c09 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Thu, 13 Feb 2025 08:59:28 -0800 Subject: [PATCH 08/10] Update docs/source/routing/about-v2.mdx --- docs/source/routing/about-v2.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/routing/about-v2.mdx b/docs/source/routing/about-v2.mdx index f199085979..fb7a57d36c 100644 --- a/docs/source/routing/about-v2.mdx +++ b/docs/source/routing/about-v2.mdx @@ -29,7 +29,7 @@ Below are the key highlights of the new and updated capabilities in router v2.x. ### Simplified integration and API orchestration of REST services using Apollo Connectors -The router introduces **Apollo Connectors for REST** to enable the router to directly call REST APIs alongside traditional GraphQL subgraphs. It improves the interoperability of the router with existing API architectures without the need to write tedious API integration code. +The router v2.x introduces Apollo Connectors for REST, a declarative way to integrate REST services into supergraphs. By defining REST API integrations in GraphQL schema, you can orchestrate calls across your fleet of APIs and other services to produce a single response from a federated GraphQL API. > Follow the [quickstart](/graphos/get-started/guides/rest-quickstart) to orchestrate your first REST API calls with Apollo Connectors. From 8d5d197c4b4a3fd642ff39d394aac1f63ceb95e9 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Thu, 13 Feb 2025 10:02:14 -0800 Subject: [PATCH 09/10] run CI From 785932feaf4a39ad3d9ec6f7efb13b91ec258bc5 Mon Sep 17 00:00:00 2001 From: Edward Huang Date: Thu, 13 Feb 2025 10:53:57 -0800 Subject: [PATCH 10/10] run CI