| KrakenD | |
|---|---|
| Developer | KrakenD |
| Initial release | 2016 |
| Repository | github |
| Written in | Go |
| Operating system | Linux, macOS, Windows |
| Platform | Cloud-native, on-premises |
| Type | API gateway |
| License | Apache License |
| Website | krakend |
KrakenD is an open-source application programming interface (API) gateway. It is written in the Go programming language and is intended for use in distributed and cloud-based applications. KrakenD is used for routing, aggregating, and transforming API requests, as well as for managing incoming traffic in microservices architectures.
KrakenD was created in 2016 by software engineers Albert Lombarte, Daniel Lopez, and Daniel Ortiz. [1] [2] [3] The name is derived from the Kraken of Norse mythology and symbolizes the integration of multiple services through a single API endpoint. [3]
KrakenD was initially developed as an open-source project. [4] [5] [1] [2] Its creators identified a shortage of lightweight, high-performance API gateways that could be easily integrated into distributed systems. [6] [4] [1] [2] Early versions of the software were built primarily for internal use. [3]
In 2021, the KrakenD company was officially incorporated, [6] [3] [7] headquartered in Barcelona, Spain. [1] [2] [8] [9] That same year, a commercial edition of the product was released, and Albert Garcia joined the team. [1] In 2021, the KrakenD open-source framework was moved to the Linux Foundation and renamed the Lura Project. [10] [5] [11]
In 2025, KrakenD was integrated into the Shop Circle platform while remaining operationally independent. [12] [13] [14] [15]
KrakenD software is used in both cloud-based and on-premises environments and is adopted by organizations such as IBM, National Geographic, Oracle, and units of the United States Navy. [1] [5] [6]
KrakenD has two main versions: Community (open source) and Enterprise (commercial). [1] [4]
The gateway is implemented as a stateless system, written in Go, and operates without a centralized configuration database. It aggregates multiple backend services into a single API endpoint and supports horizontal scaling. [16]
KrakenD supports protocols, including HTTP, gRPC, WebSocket, message queues such as RabbitMQ and Kafka, and SOAP through Non-REST integrations. The system supports authentication and access control through OAuth2, OpenID Connect, JWT, and API keys, and can be connected to external tools for logging, monitoring, and request tracing. [16]
Gateway configuration is specified in JSON, YAML, or TOML formats and may be stored in version control repositories. Configuration updates can be applied dynamically, without requiring changes to backend services. Both Open Source and Enterprise editions have an option to extend functionality through Go-based plugins. [4]
{"$schema":"https://www.krakend.io/schema/krakend.json","version":3,"name":"KrakenD - API Gateway","timeout":"3000ms","cache_ttl":"300s","output_encoding":"json","port":9090,"endpoints":[{"endpoint":"/weather","method":"GET","output_encoding":"string","backend":[{"url_pattern":"/weather","encoding":"string","sd":"static","method":"GET","host":["http://service:8080"],"disable_host_sanitize":false}]}]}version:'3.8'services:krakend:image:krakendports:-"9090:9090"volumes:-./krakend.json:/etc/krakend/krakend.jsonweather:image:your-weather-serviceports:-"8080:8080"KrakenD is capable of processing large numbers of simultaneous connections with minimal response delays while keeping resource consumption within predictable limits. Deployment is typically carried out using Docker and Docker Compose. [16] [18]
KrakenD is used in backend-for-frontend and microservices architectures and is deployed in containerized environments, including Kubernetes and mixed cloud or on-premises setups. [16]
| Protocol / Service | Community | Enterprise |
|---|---|---|
| HTTP | Yes | Yes |
| gRPC | No | Yes |
| WebSocket | No | Yes |
| RabbitMQ / Kafka | Yes | Yes |
| SOAP | Yes | Yes |
| OAuth | Yes | Yes |
| OpenID Connect | Yes | Yes |
| JWT | Yes | Yes |
After the core library was transferred to the Linux Foundation, the KrakenD open-source framework was renamed Lura Project. [5] [11] [19] [10] [20] Lura is a declarative framework for building API gateways that supports service aggregation, request routing, and data transformation. [5] [11] [20]
The framework uses JSON, YAML, or TOML for configuration and supports extensibility through custom plugins. It is intended for use in microservices and backend-for-frontend architectures to manage communication between client applications and multiple backend services. [11] [19] [10] [20] [21]