Add an API that speaks "use cases" and serves at the speed of light
KrakenD is a pure API Gateway that interacts with all your different microservices providing clients a single interface. Improves response times, saves bandwidth, delivers a better user experience and saves developers time. Merge many calls into one, transform data, secure the transport, filter fields, shrink responses, throttle connections, establish quota usage limits, decode, enrich and much more.
Move from dealing with every particular microservice to talking to a single backend for frontend that handles the interaction with all your microservices. Configure those services just by editing a simple json file (or using the GUI) and start fetching and sending data to them.
KrakenD offers an API that feeds from as many APIs or services you need. Define in every endpoint that you create what is the data you will need and it will be automatically merged for you. You can even control how to merge it. Merge content from public external services and internal microservices. Mix it all!
Put KrakenD in front your services and create endpoints that expose exactly the fields you decide for the different use cases need, using white-listing or black-listing. Remove unwanted or sensitive data, rename fields, encapsulate different API responses into new attributes. Create consistency for the consumer.
The use of KrakenD requires no coding because all data transformations, picking, merging, definitions, etc is declared in a single configuration file. All the API gateway behavior can be edited by hand or using the KrakenDesigner, a GUI that allows you visually design your API from scratch or resume an existing one.
KrakenD has been built with performance in mind. Expect a massive performance and speed in every running instance. Because KrakenD has been coded in Go and using only the standard lib and no dependencies and with the best architecture practices you'll see a product that can support a huge amount of traffic per box consuming almost no-memory.
Unlike other solutions KrakenD does not need to store in a central place its state, or configuration giving a true linear scalability that responds to real growth. When running several KrakenD instances they do not need to share data between them.
Reduce the time your users are waiting for their mobile devices to load the page. KrakenD removes the mobile devices and web clients the job to open all the connections, merge the data, pick the desired fields and present the information. Let KrakenD do the plumbing and heavy lifting for you, make your clients use the data in its best interest.
SSL HSTS noClickjacking HPKP nosniff XSS OAuth JWT
Enable SSL and protect yourself from clickjacking protection, XSS, MIME-Sniffing, HSTS, HPKP or set the CORS settings. Enable or disable security headers at will. By just adding this options in the configuration you'll have a secure API Gateway out of the box.
KrakenD natively runs in any cloud or private datacenter and is designed to run both in orchestration services like Kubernetes, Mesos, Nomad and more through containers and service discovery or directly installed in bare metal, your choice.
Connect to your services using OAuth 2.0, the industry-standard protocol for authorization and use URL-safe claims when transferring data, including libraries implementing JWT and the JOSE specs JWS, JWE, JWK, and JWA.
KrakenD allows you control the throttling and usage quotas based on the criteria you specify. This limits can be set both for the end users and KrakenD against your infrastructure.
Designed to be able to add a lot more of functionalities, plug-ins and middlewares without modifying its source code (e.g: injecting headers with a DSL language). But if you want to, hey, it's open source!
Efficiently control the number of errors you allow in a time window and respond smartly to problems.
When settings limits against your backends bursting is controlled to allow certain spikes without affecting the end users.
Service Discovery system based on DNS SRV records. Integrations like Etc available by default.
KrakenD does not have any limit on the number of parallel queries you can make to different services per call, or number of endpoints you can expose. Limit is your kernel.
All API endpoints, backend definitions and behavior is controlled from a single file. Easily keep track of the changes in your version control system.
Map the request parameters and variables that will pass to your backends just by writing a pattern. Nothing else.
KrakenD load balances efficiently the connections to your backends
Optionally multiply x N a unique request to your backends, take the fastest response and discard the rest to reduce even more the global response time.
Add http cache headers to avoid extra traffic and make clients load faster.
For a single endpoint connect to different sources that use different encoding techniques, either in XML, JSON or RSS and return all you need in JSON
Wrap backend responses in new attributes, rename the fields that are presented to the user, work with objects or collections (arrays)
KrakenD runs on Linux, BSD, Mac OS and even Windows (at your own risk!). If we don't offer a binary you can always compile it from your own architecture.
Open source. Free to use and modify.