KrakenD EE v2.13: AWS Bedrock, AI Dashboard, Kafka, and Plugin Extensibility
by Jorge Tarrero
KrakenD Enterprise v2.13 continues expanding the AI Gateway with AWS Bedrock support, a brand-new Grafana dashboard to monitor AI token usage, and a new way to fallback to alternative AI providers if a specific quota threshold is met.
Beyond AI, this release delivers advanced Kafka integration, makes Redis and quota processors available to all plugin types, and introduces a new Request Body Extractor modifier, among other improvements. Here’s what changed and why it matters.
AI Gateway: AWS Bedrock and Token Visibility
The AI Gateway ai/llm component now supports AWS Bedrock, and it’s been a frequently requested integration. The reason comes up often in conversations with enterprise teams: data ownership. When you send prompts to a third-party model API, your data passes through infrastructure you don’t fully control. As Amazon doesn’t use your inputs to train its models, your data stays within your AWS environment, and you keep the compliance posture you’ve already established.
If your team is already on AWS, the integration is straightforward: route AI workloads through Bedrock using the same unified LLM interface you use for OpenAI, Gemini, Anthropic, and Mistral. For teams operating under strict data residency or regulatory requirements (HIPAA, GDPR, FedRAMP), this makes Bedrock a natural fit.
Alongside Bedrock, a new AI Gateway Dashboard gives you visibility into AI token consumption directly from Grafana. Monitor usage patterns, track costs, and detect anomalies across all your AI providers in one place.
Advanced Kafka Integration and Kafka Async Agents
Kafka support has been part of KrakenD’s PubSub backend for years. But the Async Agent — KrakenD’s engine for event-driven, consumer-side processing — only supported RabbitMQ until now. [Kafka is now a first-class citizen in Async Agents(/docs/enterprise/async/kafka/), which is a big deal if you’re running a Kafka-first infrastructure and wanted to keep async processing inside KrakenD rather than bolting on a separate consumer.
Beyond that, the entire Kafka integration has been overhauled with advanced configuration and connectivity that was previously out of reach: explicit connection settings, TLS configuration, and finer control over how KrakenD interacts with your topics. If you’ve been using Kafka with KrakenD for a while and working around its limitations, this is the release where those workarounds become unnecessary.
Finally, there is a new Kafka dashboard for Prometheus/Grafana that will help administrators track the entire KrakenD-Kafka integration.
Plugin Extensibility: Redis and Quotas
Two major extensibility improvements land in this release. Quota processors and Redis can now be injected and used in all types of plugins (handlers, modifiers, middlewares, and clients). This opens the door to building custom plugin logic that leverages centralized rate limiting, quotas, and Redis-backed state without having to reinvent the wheel.
Your plugins can now read KrakenD’s quota state and report a cost after your custom logic runs — so the weight of a request reflects what actually happened, not a fixed rule. Redis access is also injected directly by KrakenD, meaning your plugin gets a ready-to-use client without managing connections or credentials. Less boilerplate, more expressive logic.
Smarter Quota Management with Fallbacks
A new quotaProcessor macro is available in Security Policies, enabling more complex quota management scenarios. This includes the ability to define fallback backend options, so when a primary quota source is unavailable, your gateway continues to operate with alternative logic rather than failing.
For example, when a user exhausts their quota, instead of returning a hard rejection, a policy can route them to a fallback backend that keeps them functional at a lower cost. For example, a user who hits their limit on a premium hosted AI model can be transparently redirected to a local model that adds no inference cost — degraded in quality perhaps, but still useful, and far better than a rejection.
Request Body Extractor
The new modifier/request-body-extractor component lets you extract values from the request body and propagate them as headers. These extracted values are then available throughout the rest of the request flow, enabling scenarios like routing or filtering based on body content without custom code. A classic one: routing or authenticating based on a tenant_id or workspace_id buried in a JSON body. Upstream services often expect it as a header, but clients send it in the payload.
Developer Experience Improvements
A handful of quality-of-life improvements round out the release: gRPC reflection support, new logging verbs for microsecond and nanosecond latency precision, a license info subcommand, JSON Schema updated to support drafts up to 2020-12, and improvements to GCP and Gemini authentication.
Bug fixes and security updates
Several bug fixes ship in this release, including a notable fix for slow startup times in services with thousands of endpoints. Go has been upgraded to 1.25.8, addressing several CVEs in crypto/x509, html/template, net/url, and os. The Circuit Breaker library has also been upgraded with the latest patches.
On a relevant note, Opencensus no longer instruments PubSub or JOSE secrets management.
🚀 Summary of changes for EEv2.13
Yet more AI Gateway features (AWS Bedrock, quota fallbacks, dashboards), Kafka advanced integration, Redis and quotas for plugins, and more!
-
Added AWS Bedrock support to the AI Gateway
ai/llmcomponent. -
Added a new
quotaProcessormacro to Security Policies Engine for more complex quota management, including fallback backend options. - Added advanced Kafka features to both PubSub and Async agents components, including specific details for connections, TLS, and more.
- New AI Gateway Dashboard to monitor AI token usage
- Quota processors can now be injected and used in all types of plugins, allowing the use of quotas for custom use cases.
- Redis can now be injected and used in all types of plugins, allowing the use of Redis for custom use cases.
- Enhanced service-to-service authentication for Google Cloud services.
-
Added a new
license infosubcommand to print the current license information, licensee, and entitlements. -
Added new
latencyUsandlatencyNsverbs to both custom access and backend logging. -
Added a new
uriverb to custom access logging to log the full request URI, including query strings. -
Added
max_call_recv_msg_sizeto gRPC backend options to set the maximum message size in bytes that the client can receive from the backend. -
Introducing
modifier/request-body-extractorcomponent to extract values from the request body and propagate them as headers for later use in the request flow. - Added support for gRPC reflection, exposing the description of available services and methods to call.
- Backend proxy pipe has been rearranged so request/response body generator modifiers are now applied to components like workflows, middleware plugins, SOAP, and others.
-
Improved authentication for Gemini
ai/llmprovider. - Upgraded Circuit Breaker library with the latest features, bugs, and security patches.
- The JSON schema library was replaced with a more maintained one, supporting draft-04, draft-06, draft-07, 2019-09 (new), and 2020-12 (new).
-
The
auditcommand has new deprecation rules. -
The OpenAPI
importcommand now honors the responseexamplesdefinitions. -
Fixed router panic (invalid node type) that occurs when
disabled_redirect_fixed_pathis not enabled and a request path doesn’t match any registered route. -
Fixed a bug in
auth/validatorthat could lead to slow startup times in services with a large number (thousands) of endpoints -
Removed query strings from
pathverb in custom access logging to avoid logging sensitive data. -
Fixed a bug that caused Lua
premodifiers to be ignored when combined with CatchAll endpoints. - Runtime context is now properly propagated to handler, modifier, middleware, and client plugins. This enables controlling service shutdown, among others.
- Upgraded Go to 1.25.8 addressing several CVEs with disclosed descriptions:
- CVE-2026-27142
html/template: URLs in meta content attribute actions are not escaped (false positive) - CVE-2026-25679
net/url: reject IPv6 literal not at start of host - CVE-2026-27139
os: FileInfo can escape from a Root
- CVE-2026-27142
-
Upgraded
telemetry/opentelemetrycomponent to address CVE-2026-24051 - Opencensus no longer instruments PubSub nor Jose secrets management.
Upgrading to the latest version is always advised.
Happy building! 🐙