Four protocols, one engine
HTTP, WebSocket, SSE and gRPC each get a handler tuned to them, sharing connection pooling and a graceful shutdown that drains in-flight work.
The same idea as Octopus, but as a Forge extension for teams who want the gateway inside their own Go process. HTTP, WebSocket, SSE and gRPC proxying, per-target circuit breakers, traffic splitting for canary and shadow releases, and an admin dashboard written in ForgeUI.
HTTP, WebSocket, SSE and gRPC each get their own handler, with connection pooling and a shutdown that drains in-flight work.
Round-robin, weighted round-robin, random, least-connections and consistent hash, chosen per route.
Services register a descriptor and the gateway derives its routes. There is no second place where routing is written down.
The gateway for Forge applications, taking its routes from the same manifests Octopus reads.
HTTP, WebSocket, SSE and gRPC each get a handler tuned to them, sharing connection pooling and a graceful shutdown that drains in-flight work.
OpenAPI, AsyncAPI and GraphQL descriptors are read through FARP, so a service registers once and the gateway configures itself.
Round-robin, weighted round-robin, random, least-connections and consistent hash. The strategy belongs to the route, so two routes to one upstream can balance differently.
Three states with configurable failure thresholds, reset timeouts and a limit on half-open probes, held per upstream target.
Global, per-route and per-client rate limiting with a configurable burst allowance and automatic client identification.
Canary releases, blue-green deployments, A/B tests and shadow mirroring, expressed as percentages across upstream versions.
In-process gateway for Forge applications.
Composes several internal calls into one response.
Consumes the same FARP declarations as Octopus.
Bastion turns a Forge application into a full reverse proxy. It is the in-process counterpart to Octopus: same FARP-derived routing, no additional deployment.
Because every service's spec already arrives in its FARP manifest, the unified OpenAPI document is a by-product rather than something anyone maintains. That single fact has removed more documentation drift than any process I have tried.
Shipping something on Bastion? Nobody is listed here yet. Tell me what you built and you will be the first.
Get listed →