XAVI - The XTRAC API Gateway
Xavi is a API gateway that decouples API consumers from API producers. Xavi allows an API contract to be defined and maintained from
the consumer perspective, implemented as a facade in front of the services and applications providing
API functionality.
Xavi provides several key features:
- HTTP Reverse Proxy. HTTP endpoints can be exposed by the XTRAC API gateway to
API consumers, with the gateway handling the routing to the servers providing
API services.
- Load balancing. The XTRAC API Gateway provides the ability to load balance
among multiple servers providing capabilities used in an API.
- Plugin Mechanism. The XTRAC API Gateway provides a well defined plugin interface
that allows implementing the decorator pattern on HTTP calls, enabling things like
message transformation, url rewriting, and protocol translation.
- Configuration via Command Line and REST Services. The configuration used
at runtime by the XTRAC API Gateway can be configured both at the command line and
via a REST service API.
- Pluggable configuration store. Supported stores currently include Consul and a memory-based store that can be flushed to disk.
Contributing
To contribute, you must certify you agree with the Developer Certificate of Origin
by signing your commits via git -s
. To create a signature, configure your user name and email address in git.
Sign with your real name, do not use pseudonyms or submit anonymous commits.
In terms of workflow:
- For significant changes or improvement, create an issue before commencing work.
- Fork the respository, and create a branch for your edits.
- Add tests that cover your changes, unit tests for smaller changes, acceptance test
for more significant functionality.
- Run gofmt on each file you change before committing your changes.
- Run golint on each file you change before committing your changes.
- Make sure all the tests pass before committing your changes.
- Commit your changes and issue a pull request.
Quick Start
A guide for trying out xavi is available in the xavi github repository:
Quick Start Guide
Developing Xavi
Developer notes for building and coding xavi are available in the xavi github repository:
Developer Notes
License
(c) 2015 Fidelity Investments
Licensed under the Apache License, Version 2.0