Skip to content

Commit

Permalink
Including a README file.
Browse files Browse the repository at this point in the history
  • Loading branch information
KalyanAkella authored Mar 2, 2020
1 parent 2aa05ed commit c5586ce
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# director
A simple reverse proxy that forwards HTTP requests to multiple backends
for purposes of testing and benchmarking changes to existing services.

Basically, director just forwards the incoming HTTP request to a given
'primary' endpoint while in the background replays that request to multiple
'secondary' endpoints.

Primarily this enables the usecase for code changes to existing services
be deployed to new endpoints without affecting the production traffic
due to bugs/performance issues with the new code base.

It also reports the following metrics for every HTTP request handled and
for both primary and secondary endpoints:
1. Response times
2. Number of successes
3. Number of failures (only network failures)

## Getting started
The easiest way to get director is to use one of the pre-built release binaries
which are available for OSX and Linux, from the [release page](https://github.com/KalyanAkella/director/releases).

Upon downloading to a certain folder, director can be launched as:

```bash
$ director -configFile <path_to_config_yml_file>
```

A sample configuration file (sample_config.yml) is included in the root of this repo.

## Building
If you instead prefer to build director locally, here are the steps:
1. Ensure you have GoLang version 1.13+ installed
2. Checkout the repo
3. Execute `make build` or `make test build`
4. Launch director from `./bin/director -configFile <path_to_config_yml_file>`

0 comments on commit c5586ce

Please sign in to comment.