Repose is an open-source RESTful HTTP proxy service that scales to the cloud. Repose provides a solution to common API processing tasks such as rate limiting, client authentication, translation, API validation, versioning and logging so web service developers can focus on the unique features of their services.
To understand Repose better, let’s examine how we use Repose here at Rackspace. One of our internal applications of Repose has been to simplify development and use of Atom Hopper, another of our open-sourced products that I’ve blogged about before. We use Atom Hopper as a key tool to collect data from our deployment of OpenStack. We have several internal teams that want to access this data as well as to publish additional data into Atom Hopper. Naturally, all of this requires Atom Hopper to perform basic functions such as authentication, rate limiting and logging. This is where Repose steps in. Repose already has components that can do this for Atom Hopper, or for any other web based service for that matter. This lets the Atom Hopper team focus on just the core pieces of Atom Hopper while Repose deals with general-purpose functions like authentication and rate limiting. This relationship with Repose works for other web services developed by teams within Rackspace: those developers focus on their own web service and let Repose do the other tasks that almost every web service needs. It’s no longer necessary for every development team to re-invent the wheel for client authentication, rate limiting and such functions.
In the same way, you can use Repose to help you focus on your own web-based service. You can use Repose no matter what programming language you used to develop your web service.
Repose’s design gives it several benefits. Repose is:
Integration patterns are technology-independent designs that are robust and re-usable. Repose is a platform that can be used to implement integration patterns. In particular, Repose uses these two patterns:
One year ago we launched Repose as open source software. We’ve been very happy with Repose in production and welcome your feedback.
To learn more about Repose, the Open Repose website is your starting point providing links to the source code in GitHub. This is also the right place to find our documentation, including an FAQ and wiki; the wiki has the most current information. You might also be interested in a walkthrough on setting up Repose to use rate limiting over on our DevOps blog.