In November 2016, we released KrakenD framework to the public. Today, after three years serving traffic around the world, and a lot of lessons learned on the way, KrakenD 1.0 is out 🎉🎉🎉
KrakenD 1.0 is our announcement to the world that our libraries are now fully established and with the solid commitment of keeping backward compatibility. In the last twelve months, we have seen 120,000+ clusters in the world and 1M+ docker pulls, but as we always did (since 0.4), you don’t need to change your current configuration file to upgrade to the new version.
KrakenD 1.0 has been long waited and brings a lot of features, as well as new Enterprise functionalities. Let’s see what’s new!
What’s new in KrakenD 1.0
Integrate with event-driven architectures
With KrakenD 1.0 you can connect an endpoint to multiple publish/subscribe backends, extending the previous AMQP capabilities, and helping you integrate with event-driven architectures.
For instance, a UI or a mobile can push events using a REST interface and at the same time, consume the events stored in the past X seconds. Put the new pub/sub along the rest of existing middleware -CEL, jsonschema, martian, lua, plugins…- and start to do magic like validating messages and formats with a few lines of configuration.
The list of supported backend technologies is Amazon Simple Notification Service, Amazon Simple Queueing Service, Azure Service Bus Topic and Subscription, Google Cloud PubSub, NATS.io and RabbitMQ
See the publish/subscribe documentation
Integration with AWS Lambda functions allows you to invoke Amazon Lambda functions during a KrakenD endpoint call, like any other regular backend. KrakenD can connect to your Lambda functions, and they can be defined statically per endpoint or dynamically using parameters in the endpoint URL.
Read the Lambda documentation
Plugins, plugins, plugins. Scripting, scripting, scripting
KrakenD 1.0 adds a plugins system for the proxy and the router pipes. With a few lines of go you can create your custom library that it’s registered in KrakenD without re-compiling the gateway. Need more control of the pipe? You can still create your middleware.
In addition to Go plugins, scripting with Lua is now an additional option to extend your business logic, and is compatible with the rest of options such as CEL, Martian, or other Go plugins and middlewares.
The new bot detector module checks incoming connections to the gateway to determine if a bot made them, helping you detect and reject bots carrying out scraping, content theft, and form spam.
You can whitelist or blacklist bots and be in control of all the rules applied to reject undesired traffic.
Read the bot detector documentation
More power to configuration templates
Before 1.0, the
krakend.json configuration file defining all the settings could be split into several files, and the base file could add logic: conditionals, loops, and other elements of the go templates. But partial templates were static. Now the flexible configuration can process sub-templates as go templates, giving an unlimited power when defining configurations.
Read the flexible-config documentation
Customers of the KrakenD Enterprise package enjoy the development, consultancy, support, and training services offered by the very same KrakenD creators. With the roll-out of KrakenD 1.0, we are adding even more services: firstly, a set of new SaaS functionalities that allow remote management, observability, and other features. Secondly, more tooling around KrakenD to increase productivity, and enable working with KrakenD in large groups of developers.
Our commitment to open-source is still in the center of our business, and this is why our Enterprise solution is built on top of the open-source version. The Enterprise version uses the same OSS binary and extends it with a great variety of pluggable solutions. We want to make sure that both enterprise and community users have the excellent quality and reliability they had so far.
We spent three years focusing on technology, and KrakenD 1.0 is the result of all the hard work. Thanks for having participated, for making us review decisions, for contributing, and for having spread the love. From here, there’s only more good stuff: more integrations, more professional services, and more functionalities that other products can’t provide due to its architecture limitations. So, here we go!
If you have specific questions and share with other developers, join now our #krakend channel at Gophers on Slack.