KrakenD framework joins the Linux Foundation. Read more.

Traffic mirroring: test your APIs automatically, without writing tests

by Daniel Lopez

Jul 27, 2021

how-to

6 min read

Integration and load testing are in the list of best practices in our sector, but synthesizing good inputs for such tests and analyzing the results are usually two hard things to achieve. This post will show you how we suggest our customers set up a shadow testing system with minimal impact on the production environment and proper harness. Quick overview As pointed out at https://cloud.google.com/architecture/application-deployment-and-testing-strategies Testing new backend features by using the production load.

Continue reading →

How we built our telemetry service

by Daniel López

Mar 15, 2021

open source, golang, how to

7 min read

​ We have run our telemetry system live for the past three years now. In this article, we’ll share code and outline some of the things you’ll need to keep in mind if you want to build an anonymous usage reporting system for an open-source project as we did at a ridiculous cost. We have an activity of 700,000 reporting servers/month with a monthly cost betwen 5 and 10 EUR ($12).

Continue reading →

gRPC-gateway as a KrakenD plugin

by Daniel López

Jun 9, 2019

how to, gRPC, golang

7 min read

The gRPC protocol is becoming trendy in the era of microservices. Its compactness and backward-compatibility make it very attractive. However, it requires custom code to work with it. In this article, we’ll show you how to get all the benefits from the gRPC protocol and the gRPC-gateway without coding any business logic to use your gRPC services as regular backends. Moreover, avoiding the extra network hop!

Continue reading →

Doing housekeeping on your KrakenD configuration file

by Albert Lombarte

May 17, 2019

how-to, tips and tricks

4 min read

Starting your krakend.json configuration from scratch and writing every attribute in a blank editor might be a difficult and time consuming task, and that’s why we have the KrakenDesigner. KrakenDesigner is an aid tool to generate KrakenD configurations for the uninitiated audience. It produces a verbose output of the configuration file and explicitly writes unneeded attributes to let you see that a specific configuration option exists. These attributes I am mentioning are not necessary because they contain default values and the server is not going to alter its behavior.

Continue reading →

How we run KrakenD on Javascript with WebAssembly

by Daniel Lopez

Dec 9, 2018

open source, how to, golang, WebAssembly

11 min read

KrakenD is an API Gateway written in Go that uses a single configuration file to define its whole behavior. As the configuration file might be complicated, the KrakenDesigner is a javascript-based user interface to edit this file, and we were missing the capability of reproducing directly on javascript the existing gateway pipes so that users could run manual tests over the editing configuration. In this post, we are going to explain how we included KrakenD framework components in a .

Continue reading →

Running the KrakenD API Gateway on Kubernetes

by Daniel López

Jun 6, 2018

open source, golang, how to, docker, kubernetes

7 min read

In this article we are going to show how to configure and deploy the KrakenD API Gateway in a kubernetes environment. We will use for the demonstration Minikube so you cant test it in your own local machine. Let’s get started! Setting up a local Kubernetes We will run Kubernetes locally thanks to Minikube. Just follow the README in the project for the installation and the Quickstart section. Installing minikube it’s quick and easy.

Continue reading →

Website development as a sysadmin

by Daniel Ortiz

May 10, 2018

open source, mvp, golang, how to, api2html, mustache

6 min read

As a systems administrator for the past 15 years, I’m not very used to web development as this kind of work has been usually done by other colleagues in every company I’ve worked for. I wanted to create a web application myself using an external API, as an exercise to go out my comfort zone. Some time ago I found that Marvel Comics has a REST API where you can get a lot of information about comics, characters, authors and other interesting information.

Continue reading →

How to work with Golang plugins and KrakenD

by Daniel López

Apr 12, 2018

open source, golang, how to

6 min read

The release of golang 1.8 more than a year ago opened the door to loading dynamic linked components in run time, and we were keen to find out if we could include this great feature in our KrakenD toolbox. We’d like to share our experience and details on how we enhanced our products to support golang plugins. Why would anyone use plugins in Go? The plugin concept is widely known and supported in several programming languages and environments.

Continue reading →

Deploying and versioning an API Gateway

by Daniel López and Albert Lombarte

Apr 6, 2018

open source, golang, how to

8 min read

When it comes to maintaining and deploying an API Gateway within an organization, you should always be aware of best practice. A gateway is an extra step between the client and the servers with the power to define a whole new interface, yet it’s so flexible and easy to implement that you might be tempted to start creating API interfaces without thinking about it - and end up creating problems for the future.

Continue reading →

How we automated our RPM and DEB packaging with Docker

by taik0

Nov 6, 2017

how-to, packaging, docker

6 min read

Everyone loves reaching the maximum number of available platforms for their software but this usually comes at a cost. In this article we will explain how we generated our packaging for Linux in an automated fashion, being faithful to our DevOps dogma. Dockerize all the things! Our team uses both Ubuntu and MacOS X in desktop machines and KrakenD has been running and behaving in the same way in all the platforms because from day one we decided to run everything on Docker.

Continue reading →

Stay up to date with KrakenD releases and important updates

We use cookies to understand how you use our site and to improve your overall experience. By continuing to use our site, you accept our Privacy Policy. More information