What KrakenD Does
In this playground, KrakenD demonstrates:- Data aggregation - Combining multiple backend calls into single responses
- Request/response transformation - Filtering, mapping, and grouping data
- Authentication - JWT token validation with Keycloak integration
- Caching - Backend response caching based on cache headers
- Rate limiting - Controlling request rates to protect backends
- Telemetry - Exporting metrics, logs, and traces to observability services
Ports
KrakenD exposes multiple ports:| Port | Purpose |
|---|---|
| 8080 | Main API Gateway - all client requests |
| 1234 | Admin API - health checks and bloomfilter RPC |
| 8090 | Additional admin endpoint |
Configuration
Configuration File
The gateway configuration is located at:@comment fields explaining each endpoint’s purpose.
The playground uses the
:watch KrakenD image that automatically restarts when configuration files change. Do not use this image in production - it’s designed for development and testing.Auto-Reload on Changes
When you editkrakend.json, the changes are applied automatically. No manual restart required.
Editing Endpoints
The easiest way to modify the configuration:- Drag
config/krakend/krakend.jsoninto the KrakenD Designer - Make your changes in the visual editor
- Download the edited file
- Replace
config/krakend/krakend.jsonwith the downloaded file - Changes apply automatically
Example Endpoints
The playground includes various endpoint examples. See the endpoint documentation for a complete list of available endpoints and their features.Flexible Configuration
The playground includes an example of flexible configuration with templates, variables, and logic.
krakend-flexible-config.tmpl that demonstrates:
- Code snippets and includes
- Template variables
- Iterations and conditions
- Golang templating syntax
Dependencies
KrakenD depends on:- fake_api - Provides backend data on port 8000
- jaeger - Receives distributed traces