flexway
FRENTalk to an expert

Glossary

Flexway's terms - contract, operation, upstream, tenant, policy, quota, virtual cluster, MCP surface... - each with the page that explains it.

ReferenceAll audiencesSince version 0.1.0

Markdown

On this page

Flexway's terms, in alphabetical order, each with the page that explains it. Configuration keys and extension names are written as they are typed.

Admin port

The separate listener (:9090 by default) of the probes, /config, the simulation, the journals and the metrics; never routable from outside. -> Admin API

API key

A secret given to a caller without a token, bound to a tenant and to named operations; the gateway keeps only its SHA-256 digest. -> API keys

Asynchronous plane

Publishing and consuming messages on a broker (Kafka, AMQP, MQTT, NATS) under an AsyncAPI contract, with the same identity and tenant as HTTP. -> Publishing and consuming on a broker

Bucket

A caller's token bucket in a rate-limit policy: it fills at a rate and loses one token per request; empty, 429 rate_limited. -> Setting quotas

Catalogue

The list of served operations, with their upstream, security, owner and withdrawal date, published by /config and shown by the console. -> Reading with the console

Circuit breaker

The per-upstream state that stops calling a failing upstream for a while, then tests it again (upstreams.<name>.circuit_breaker). -> Setting quotas

Closed by default

What is not declared does not pass: operation, header, parameter, origin. The whitelist is the normal mode. -> Security posture

Configuration digest

config_digest: the semantic digest of the configuration served, printed by flexway validate and published by /config, which tells whether two replicas serve the same thing. -> Changing the configuration without a restart

Contract

The document that describes an API - OpenAPI 3.1, AsyncAPI 3, gRPC service or A2A agent card. The contract is the configuration: the gateway serves exactly the operations it declares, and nothing else. -> API gateway

Effective configuration

What a replica serves at this moment: every key of flexway.yaml as loaded, secrets masked, plus the catalogue and the chains, read on GET /config. -> Admin API

Enforced policy

A policy a fragment places at the head of every chain of the gateway that imports it (HTTP listener): no local line removes, replaces or undoes it (since 1.7.0). -> Shared policy fragments

Extension

An x-flexway-* key written in the contract for what belongs to an operation (upstream, timeout, cache, MCP tool...). The list is closed: an unknown extension is refused at load. -> Configuration reference

Host

A host name served with its own contracts and default upstream (hosts), to serve several APIs from one gateway. -> Changing the configuration without a restart

Issuer

An OIDC identity provider declared under auth.issuers, whose tokens the gateway verifies. -> Wiring your identity provider

MCP federation

Existing MCP servers placed behind the gateway's MCP surface, their tools offered under their names, under the same decision as the contract's tools. -> Agents and MCP

MCP surface

The gateway's Model Context Protocol entry point: the operations marked x-flexway-tool are offered there as tools to agents, under the same decision as REST. -> Agents and MCP

Operation

A method on a path of a contract (or a gRPC method), the unit the gateway routes, authorizes, counts and logs. -> Serving your first API

operationId

The unique name of an operation in the contract. Required: quotas, keys, audit and metrics name operations by it. -> Serving your first API

Policy

A named, phased and conditional (CEL) treatment - CORS, rate, quota, cache, transformation, external call... - declared under policies and attached by a chain. -> Enriching a flow

Policy fragment

A kind: PolicyFragment file of policy definitions written once, imported by several gateways that each pin it by its sha256 digest; its definitions are named <import>/<name> there (since 1.7.0). -> Shared policy fragments

Policy chain

The order in which policies apply to an operation: global -> host -> routes -> operation, the most specific wins, a removal is written !name. -> Enriching a flow

Proposal

A change of flexway.yaml prepared in the console, reviewed, then opened as a pull request on the repository that holds the configuration; the console never merges. -> Proposing a change from the console

Quota

A ceiling of requests per tenant per day or month (a quota policy), counted in the shared cache; past it, 429 quota_exceeded. -> Setting quotas

Rate class

The group of operations that shares a caller's bucket in a rate-limit policy (read, write or a declared class); an operation changes class with x-flexway-rate-class. -> Setting quotas

Reload

Reading the configuration and the contracts again without a restart; a refused configuration never replaces the one serving. -> Changing the configuration without a restart

Replica

One instance of the gateway's process. Each replica has its own memory (cache, journals); only the counters are shared, through the shared cache. -> Choosing a deployment

Shared cache

The Redis-compatible shared cache - Redis, Dragonfly or Valkey (server.counters) - where the replicas reconcile buckets and quotas, off the request path; optional, but required by tenant quotas. Its counters are disposable: lost, the gateway goes on with local counters. -> Setting quotas

Shedding

The immediate refusal (503 overloaded) of lower-priority requests when the gateway saturates (server.shedding, x-flexway-priority). -> Setting quotas

SLO

An availability or latency objective, on an operation or a group of operations, followed by the console with its error budget. -> SLO objectives on groups of operations

Tenant

The isolated customer a request belongs to, read from a signed claim, an API key or a certificate - never from a value the caller writes. -> Multi-tenant isolation

Timeout budget

The three timeouts of an exchange - connect, read (the silence tolerated, which alone bounds a stream) and total (retries included) -, from the most general (server.timeouts) to the most specific (x-flexway-timeout on the operation). -> Serving your first API

Token exchange

Obtaining, from the caller's identity provider, a token issued for one specific upstream (RFC 8693): the upstream never receives the original token. -> Agents and MCP

Upstream

The service the gateway relays an operation to, declared under upstreams in flexway.yaml and named by the operation (x-flexway-upstream) or by default (default). An operation without an upstream makes the start fail. -> Serving your first API

Virtual cluster

The Kafka cluster a native client sees through the gateway: declared in the AsyncAPI contract, each tenant reads and writes there under its own names. -> Native Kafka clients

Next steps