3 min read
KrakenD 0.9 released
by Albert Lombarte
It’s been only one month since we released KrakenD 0.8, and although we have been releasing new versions approximately every 3 months, we have very interesting features that can’t wait! KrakenD 0.9 comes with a series of very demanded features. Let’s get started!
Integration with AMQP
The AMQP integration allows you to send and receive messages to and from a queue through the KrakenD API Gateway. This feature enables the gateway to become in both a subscriber and a consumer of messages for asynchronous processing and opens the doors to very different implementations we were seeing.
Read the AMQP documentation.
Traffic shadowing
Also known as traffic mirroring, the traffic shadowing allows you to test new backends in production by sending them copies of the traffic but ignore their responses.
When you add a backend to any of your endpoints as a shadow backend, KrakenD continues to send the requests to all the backends as usual, but the responses from the ones marked as shadowed are ignored and never returned or merged in the response.
This feature was available in 0.8 but only for those using the KrakenD framework as a library to build their own gateway. Now comes out of the box with KrakenD-CE.
How to implement traffic mirroring.
KrakenD framework
Summary of the most significant changes:
[bugfix]
Abort a sequential merge after the first error or incomplete response[bugfix]
Propagate the content length when present[bugfix]
Avoid counting output params referred to a response value[feature]
Flatmap filter for collections[other]
Old go versions 1.8 and 1.9 are now discontinued[performance]
Load balancing URL creation improved[performance]
URL creation for sequential merger improved
Link to 0.9.0 release notes
KrakenD API Gateway
The KrakenD API Gateway binary comes with all the framework updates and all the component changes (listed in krakend-contrib), which is a considerable list!.
The summary of changes is:
[feature]
AMQP client (producer and consumer)[feature]
Shadow proxy factory added to the proxy factory stack[feature]
CEL: upgraded to 0.2.0[bugfix]
Flexibleconfig: fix ‘invalid cross-device link’[feature]
Flexibleconfig: accept partial templates[feature]
martian: status package included[feature]
ratelimit: cleanup unused limiters after some TTL[feature]
cobra:krakend check
exits with a non zero status code when the configuration fails[feature]
usage: timeout added to every request
Link to 0.9.0 release notes
Middleware and other features
New middleware, changes and other components for KrakenD worth mentioning.
Developers with large and complex configurations of KrakenD that are already using the flexible configuration component to split the configuration file into several pieces can now use Go partial templates with {{ template }}
.
The KrakenDesigner website always shows the latest version of the editor, but now we are bundling it into a Docker image so you can use locally or in your own network the desired version.
Other components upgraded:
krakend-ratelimit
: Number of iterations reduced and cleanup improvementskrakend-cobra
: exit with a non zero status code if krakend check failskrakend-martian
: Add support for the martian status modifier
All the middleware and components are listed in our krakend-contrib repository.
Contributors
Special thanks to individuals of the open source community who helped us with this release, shown in no particular order:
Join now our #krakend channel at Gophers on Slack.
Enjoy KrakenD!