API gateway
edgeapi-gateway
Managed entry point that routes, authenticates and throttles inbound calls.
- Category
- Edge
- Properties
- 9
- Components
- 41
- Rules
- 1
A node of this kind resolves each property from its own props, then the component's defaults, then the default below.
| property | type | values | required | default |
|---|---|---|---|---|
| auth | enum | none | api-key | jwt | oauth2 | mtls | no | none |
| concurrencyLimit | boolean | — | no | false |
| idempotencyKeys | boolean | — | no | false |
| instances | integer | — | no | — |
| keyTtlHours | integer | — | no | — |
| managed | boolean | — | no | false |
| protocol | enum | http | grpc | websocket | fix | ouch | no | http |
| rateLimiting | boolean | — | no | false |
| tls | boolean | — | no | true |
sync-chain-too-deep
Every consecutive synchronous hop from this entry point spends part of the stated p95 latency budget, and the chain's failures multiply. More than three hops is a budget nobody is tracking.
- — all of these hold:
- — the design requirement `latency.p95Ms` has a value
- — the longest chain of synchronous calls starting at the node is more than 3 hops long
vendor-neutral
alibabacloud
cloudflare
default
Apache APISIXapisixApollo GraphOSapollo-graphosEasegresseasegressEmissary-ingressemissaryEnvoy Gatewayenvoy-gatewayGloo GatewayglooHasurahasuraHelicone AI Gatewayhelicone-gatewayHigresshigressKong GatewaykongKong AI Gatewaykong-ai-gatewayKong Konnectkong-konnectKrakenDkrakendLiteLLM ProxylitellmMartian GatewaymartianNot Diamondnot-diamondPortkey AI GatewayportkeyRequestyrequestySpring Cloud Gatewayspring-cloud-gatewayTyk GatewaytykUnifyunify-aiVercel AI Gatewayvercel-ai-gatewayWSO2 API Managerwso2-api-managerZuulzuul
gcp
# yaml-language-server: $schema=../schema/kind.schema.json # Abstract kind: Managed entry point that routes, authenticates and throttles inbound calls. schemaVersion: "1" type: "kind" id: "api-gateway" category: "edge" properties: auth: type: "enum" values: ["none", "api-key", "jwt", "oauth2", "mtls"] default: "none" rateLimiting: type: "boolean" default: false tls: type: "boolean" default: true idempotencyKeys: type: "boolean" default: false advanced: true keyTtlHours: type: "integer" advanced: true protocol: type: "enum" values: ["http", "grpc", "websocket", "fix", "ouch"] default: "http" concurrencyLimit: type: "boolean" default: false instances: type: "integer" managed: type: "boolean" default: false