Skip to content

docs: competitive analysis of open-source API gateways#17

Merged
cuioss-oliver merged 3 commits intomainfrom
feature/requirements
Mar 6, 2026
Merged

docs: competitive analysis of open-source API gateways#17
cuioss-oliver merged 3 commits intomainfrom
feature/requirements

Conversation

@cuioss-oliver
Copy link
Collaborator

Summary

  • Add fact sheets for 6 open-source API gateways (APISIX, Kong, Gravitee, Tyk, KrakenD, Traefik) under doc/others/
  • Update project manifest with new mandatory requirements: simple deployment, OIDC Relying Party, token mediation, transparent token refresh, RFC 9470 step-up authentication
  • Add summary/README with top-3 contender comparison table and gap analysis
  • Add excluded gateways list with reasoning (dormant, proprietary, wrong scope)

Key Findings

  • No existing gateway satisfies all manifest requirements
  • RFC 7239, RFC 9470 step-up auth, and distributed config discovery are gaps across all evaluated gateways
  • Apache APISIX covers the most requirements in its open-source edition

Test plan

  • Verify all AsciiDoc files render correctly
  • Verify cross-references between documents work
  • Review factual claims against cited sources

🤖 Generated with Claude Code

cuioss-oliver and others added 2 commits March 5, 2026 18:43
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Evaluate 6 open-source API gateways (APISIX, Kong, Gravitee, Tyk,
KrakenD, Traefik) against API Sheriff manifest requirements including
OIDC token mediation, RFC 9470 step-up auth, and stateless deployment.

Update manifest with new mandatory requirements: simple self-contained
deployment, OIDC Relying Party, token mediation (encrypted cookie),
transparent token refresh, and RFC 9470 step-up authentication.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a comprehensive competitive analysis of open-source API gateways, evaluating them against the defined 'API Sheriff' project manifest. It provides detailed fact sheets for six prominent gateways, a comparative summary highlighting top contenders and their adherence to mandatory requirements, and a clear identification of common gaps. The analysis aims to inform the strategic direction for the API Sheriff project by understanding the current landscape and justifying the need for a purpose-built solution.

Highlights

  • Competitive Analysis Fact Sheets: Fact sheets for six open-source API gateways (APISIX, Kong, Gravitee, Tyk, KrakenD, Traefik) were added, detailing their features, architecture, and compliance with project requirements.
  • Updated Project Manifest: The project manifest was updated to include new mandatory requirements such as simple deployment, OIDC Relying Party capabilities, token mediation, transparent token refresh, and RFC 9470 step-up authentication.
  • Comparative Summary and Gap Analysis: A summary document was added, featuring a comparison table of the top-3 contenders and an analysis of key gaps found across all evaluated gateways.
  • Excluded Gateways List: A list of API gateways that were considered but excluded from detailed evaluation, along with their respective reasons (e.g., dormant, proprietary, wrong scope), was included.
  • Key Findings on Gateway Compliance: The analysis revealed that no existing gateway fully satisfies all mandatory requirements, with specific gaps identified in RFC 7239, RFC 9470 step-up authentication, and distributed configuration discovery.
  • Apache APISIX Recommendation: Apache APISIX was identified as the open-source gateway covering the most manifest requirements, particularly for OIDC Relying Party, token mediation, and automatic token refresh.
Changelog
  • doc/manifest.adoc
    • Added the API Sheriff Project Manifest, detailing mandatory, planned, and optional requirements for the gateway.
  • doc/others/README.adoc
    • Added an overview of the competitive analysis, including a comparison of top contenders and a feature matrix against mandatory requirements.
  • doc/others/apache-apisix.adoc
    • Added a fact sheet for Apache APISIX, detailing its features, architecture, and compliance with API Sheriff requirements.
  • doc/others/excluded.adoc
    • Added a document listing API gateways considered but not evaluated, with reasons for exclusion.
  • doc/others/gravitee.adoc
    • Added a fact sheet for Gravitee API Management, detailing its features, architecture, and compliance with API Sheriff requirements.
  • doc/others/kong.adoc
    • Added a fact sheet for Kong Gateway, detailing its features, architecture, and compliance with API Sheriff requirements, noting its open-core model shift.
  • doc/others/krakend.adoc
    • Added a fact sheet for KrakenD API Gateway, detailing its features, architecture, and compliance with API Sheriff requirements.
  • doc/others/traefik.adoc
    • Added a fact sheet for Traefik Proxy, detailing its features, architecture, and compliance with API Sheriff requirements.
  • doc/others/tyk.adoc
    • Added a fact sheet for Tyk API Gateway, detailing its features, architecture, and compliance with API Sheriff requirements.
  • doc/technical_aspects.adoc
    • Added a document outlining the technical aspects and libraries used by API Sheriff, covering HTTP communication, security validation, OAuth token handling, logging, and testing.
Activity
  • The pull request content was generated using Claude Code.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a comprehensive competitive analysis of several open-source API gateways, along with a project manifest and technical design document. The documentation is well-structured and detailed. My review identifies a systematic formatting issue in all AsciiDoc tables that will prevent them from rendering correctly. I've provided a detailed comment with an example fix on the main README.adoc file; this fix should be applied globally. I also found a couple of minor typos in document titles. After these formatting corrections, the documentation will be in great shape.

Comment on lines +13 to +39
|===
| Document | Gateway | Highlight

| link:apache-apisix.adoc[Apache APISIX]
| Apache Software Foundation, Lua/OpenResty, Apache 2.0
| Most feature-complete OSS edition; OIDC RP + token mediation included

| link:traefik.adoc[Traefik Proxy]
| Traefik Labs, Go, MIT
| Simplest deployment; only gateway with production HTTP/3

| link:krakend.adoc[KrakenD]
| KrakenD / Linux Foundation (Lura), Go, Apache 2.0
| True stateless, API aggregation; WebSocket/gRPC enterprise-only

| link:kong.adoc[Kong Gateway]
| Kong Inc., Lua/OpenResty, Apache 2.0 (OSS frozen at 3.9.1)
| Largest ecosystem; OSS development ended March 2025

| link:tyk.adoc[Tyk Gateway]
| Tyk Technologies, Go, MPL 2.0
| Full-featured OSS gateway engine; requires Redis

| link:gravitee.adoc[Gravitee APIM]
| Gravitee, Java/Vert.x, Apache 2.0
| Unique event-native architecture; heavy infrastructure
|===

This comment was marked as resolved.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The multi-line cell format is valid AsciiDoc. Each cell starting with | on its own line is the standard way to write readable tables in AsciiDoc — see https://docs.asciidoctor.org/asciidoc/latest/tables/add-cells-and-rows/. Single-line format is also valid but less readable for cells with longer content. No change needed.

@@ -0,0 +1,206 @@
commit = API Gateway Landscape -- Competitive Analysis

This comment was marked as resolved.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 6c69004. The commit prefix was introduced by an external linter modification.

@@ -0,0 +1,338 @@
RE= Tyk API Gateway -- Fact Sheet

This comment was marked as resolved.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 6c69004. The RE prefix was introduced by an external linter modification.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cuioss-oliver cuioss-oliver merged commit 2e4791f into main Mar 6, 2026
21 checks passed
@cuioss-oliver cuioss-oliver deleted the feature/requirements branch March 6, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant