Features

Traffic Management

  • Can proxy any HTTP(s) service (APIs, webapps, websocket, etc)
  • Can proxy any TCP service (app, database, etc)
  • Can proxy any gRPC service (using a netty listener), also gRPC-Web support
  • Can proxy any GraphQL service (proxy, query composition, and schema-first backend)
  • Full WebSocket support with message validation, transformation, and mirroring
  • End-to-end HTTP/1.1 support
  • End-to-end HTTP/2 support (including H2C cleartext)
  • End-to-end HTTP/3 support (QUIC)
  • Multiple load balancing options:
    • Round Robin
    • Random
    • Sticky (cookie-based session affinity)
    • IP Address Hash
    • Best Response Time
    • Weighted Best Response Time
    • Least Connections
    • Power of Two Random Choices
    • Header Hash (consistent hashing on a request header)
    • Cookie Hash (consistent hashing on a cookie value)
    • Query Hash (consistent hashing on a query parameter)
  • Backend Failover targets support
  • Distributed in-flight request limiting
  • Distributed rate limiting
  • Per-IP, per-API key, per-route, and custom throttling and quotas
  • Request and response bandwidth throttling
  • Request and response body size limiting
  • Traffic mirroring to secondary backends
  • Traffic capture (GoReplay format)
  • Canary deployments (percentage-based and time-controlled)
  • Relay routing across network zones
  • Tunnels for easier network exposition (TCP, UDP, WebSocket-based)
  • Custom error templates

Routing

  • Router can support tens of thousands of concurrent routes
  • Router supports path parameter extraction (with regex validation)
  • Routing based on:
    • HTTP method
    • hostname (exact, wildcard)
    • path (exact, prefix, wildcard)
    • header values (exact, regex, wildcard)
    • query param values (exact, regex, wildcard)
    • cookie values
  • Full URL rewriting
  • Path stripping
  • Target predicates (route to specific backends based on geolocation, cloud region, datacenter, rack, etc)

Routes customization

  • Over 200 built-in middlewares (plugins) covering:
    • circuit breakers (with configurable thresholds)
    • automatic retries (with exponential backoff)
    • response caching
    • gzip and brotli compression
    • request and response headers manipulation
    • request and response cookies manipulation
    • CORS handling
    • body transformation (jq, regex, XML/JSON conversion, SOAP)
    • query string transformation
    • GraphQL composition
    • HTML patching
    • redirection
    • maintenance and build modes
    • static responses and mocks
    • etc
  • Support middlewares compiled to WASM (using Extism)
  • Support Open Policy Agent policies for traffic control (via WASM)
  • Visual workflow engine for building complex processing pipelines
  • Write your own custom middlewares:
    • in Scala deployed as jar files
    • in whatever language you want that can be compiled to WASM

Security

  • Coraza Web Application Firewall (WAF) with OWASP Core Rule Set support
  • IP address allow and block lists (with CIDR support)
  • Domain name allow and block lists
  • Fail2Ban-style automatic IP banning
  • Geolocation-based access control (MaxMind, IPStack)
  • Time-restricted access control
  • Log4Shell and React2Shell vulnerability detection
  • Security headers injection (HSTS, CSP, X-Frame-Options, X-XSS-Protection, X-Content-Type-Options)
  • security.txt endpoint (RFC 9116)
  • robots.txt handling

API security

  • Access management with API keys and quotas
  • Multiple API key extraction methods (header, query param, cookie, bearer token, basic auth, JWT)
  • Automatic API key secrets rotation
  • Mandatory tags and metadata validation on API keys
  • HTTPS and TLS
  • End-to-end mTLS calls
  • Routing constraints and restrictions
  • Public/private path separation
  • JWT token validation and manipulation
    • Multiple validators on the same route
    • JWE (encrypted JWT) support
    • JWT signing
  • HMAC request signing and validation
  • Biscuit token extraction and validation (datalog-based authorization)
  • OpenFGA fine-grained authorization
  • Role-based access control (RBAC)
  • Context validation (JSON path-based claims validation)

Monitoring and observability

  • Active health checks (with customizable healthy/unhealthy status codes and regex body checks)
  • Route state for the last 90 days
  • Calls tracing using W3C Trace Context
  • Real-time traffic metrics
  • Prometheus metrics export
  • OpenTelemetry metrics and logs export (OTLP)
  • Datadog, StatsD metrics export
  • Export alerts and events to external systems:
    • Elasticsearch
    • Apache Kafka
    • Apache Pulsar
    • Webhook (HTTP)
    • File
    • S3
    • Mailer (Mailgun, Mailjet, Sendgrid, generic SMTP)
    • Console / Logger
    • Splunk
    • Datadog
    • New Relic
    • GoReplay (file and S3)
    • TCP / UDP / Syslog
    • JMS
    • WASM-based custom exporter
    • Workflow-based custom exporter
  • GreenScore: ecological scoring of API routes based on efficiency rules

Services discovery

  • Through DNS
  • Through Eureka (internal and external)
  • Through Kubernetes API (namespace scanning)
  • Through custom Otoroshi protocol (self-registration)
  • Through Tailscale network

Authentication

  • OAuth 2.0/2.1 authentication (with PKCE support)
  • OpenID Connect (OIDC) authentication
  • LDAP authentication (with nested groups)
  • JWT authentication
  • OAuth 1.0a authentication
  • SAML V2 authentication
  • Basic authentication (username/password)
  • WebAuthn / FIDO2 passwordless authentication
  • Auth0 passwordless flow
  • WASM-based custom authentication
  • Internal users management
  • Multi-authentication module chaining
  • Client credentials OAuth2 flow with token endpoint

Secret vaults support

  • Environment variables
  • Hashicorp Vault
  • Azure Key Vault
  • AWS Secrets Manager
  • Google Cloud Secret Manager
  • Alibaba Cloud Secret Manager
  • Kubernetes Secrets
  • Izanami (v1)
  • Infisical
  • Spring Cloud Config
  • HTTP (generic endpoint)
  • Local (file-based)
  • Extensible via admin extensions

Certificates management

  • Dynamic TLS certificates store
  • Dynamic TLS termination
  • Internal PKI
    • generate self-signed certificates/CAs
    • generate/sign certificates/CAs/sub-CAs
    • AIA (Authority Information Access)
    • OCSP responder
    • import P12/certificate bundles
  • ACME / Let’s Encrypt support
  • On-the-fly certificate generation based on a CA certificate without request loss
  • JWKS exposition for public key pairs
  • Default certificate
  • Customize mTLS trusted CAs in the TLS handshake
  • Tailscale certificates integration

Clustering

  • Based on a control plane / data plane pattern
  • Encrypted communication between nodes
  • Backup capabilities allowing data planes to start without control plane (improved resilience)
  • Relay routing to forward traffic across network zones
  • Distributed web authentication across nodes

Static content and backends

  • Serve static files from local filesystem
  • Serve static files from Amazon S3
  • Serve static files from ZIP archives
  • Echo backend for debugging
  • Static response / mock backends

Administration UI

  • Manage and organize all resources
  • Secured user access with authentication module
  • Audited user actions
  • Dynamic changes at runtime without full reload
  • Test your routes without any external tools
  • Visual workflow designer with step-by-step debugger
  • Extensible via admin extensions (custom entities, routes, frontend modules)

Kubernetes integration

  • Standard Ingress controller
  • Custom Ingress controller with CRD support
    • Manage Otoroshi resources from Kubernetes
  • Validation of resources via admission webhook
  • Sidecar injection for service mesh
  • Bidirectional TLS certificate synchronization (Kubernetes secrets <-> Otoroshi certificates)

Dynamic HTTP listeners

  • Create and manage additional HTTP listeners on custom ports
  • Multi-protocol support (HTTP/1.1, HTTP/2, HTTP/3, H2C)
  • Dynamic configuration without restart
  • TLS and mTLS support per listener

Storage backends

  • Redis (via Lettuce)
  • PostgreSQL (via Reactive PG)
  • Cassandra
  • In-memory (with file persistence)
  • S3
  • HTTP

Organize

  • Multi-organizations
  • Multi-teams
  • Routes groups

Developers portal