Mashape has open sourced their API Layer called Kong.
Kong is an API gateway that intermediates API communications between clients and (micro)services, its functionality being extendable through plug-ins. Kong has two major components:
- Kong Server – an nginx-based server receiving API requests
- Apache Cassandra – for storing operational data
Kong can be scaled horizontally by adding more Kong Server machines providing there is a load balancer in front of them to distribute the load. According to the documentation, two Cassandra nodes are enough for most cases, but more can be added if the traffic demands it.
One of the features that will be attractive for the open source community is the ability to extend existing capabilities through plug-ins which are executed during the life of an API request-response cycle. Plug-ins are written in Lua, and Kong comes with basic ones: Basic Authentication, Key Authentication, CORS -support for Cross-origin Resource Sharing, TCP, UDP and File Logging, API Request Throttling, Request Transformer, and nginx Monitoring.
Kong packages are available for several Linux distributions, Mac OS X and Docker, and can run on premises or in the cloud.
Besides the free open source version, Mashape provides a paid enterprise edition including support, training and an API Analytics plug-in.
Kong’s source code, including the plug-ins, is available on GitHub.