Skip to content

Introduction

Marcelo Aguiar Rodrigues edited this page Oct 4, 2018 · 2 revisions

Heimdall is composed of six modules, where three of them are central to the project — Config, API and Gateway —, being built around certain business domains.

Config

Spring Cloud Config is a horizontally scalable centralized configuration service for distributed systems. It uses a pluggable repository layer that currently supports local storage, Git, and Subversion.

In this project, we use native profile which loads config files from the local classpath. You can look into shared directory in Config service resources. Now, when Heimdall-api requests its configuration, Config service responds with shared/application-api.yml.

Gateway

We built our algorithm on top of Netflix Zuul. We put some steroids on the Zuul Filters and added some criteria to make the routes matching more rigid (like the HTTP Verb on the match). Plus, to manage the request/response and Zuul Filters flow, we applied a message broker (RabbitMQ) to communicate with the API.

API

To present an easy way to manage the gateway, we implemented an API to make it easier to add new routes, interceptors, rate limit and others things to manipulate the gateway at runtime.

Deploy on Heroku

Heimdall can be easily deployed to Heroku clicking on this button:

Deploy to Heroku

alternatively, executing the commands:

$ heroku login
$ heroku create
$ git push heroku master
$ heroku open

Feedback is welcome

Heimdall is open source, and we appreciate your help. Feel free to contribute.

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.

Please note we have a code of conduct, please follow it in all your interactions with the project.

Pull Request Process

  1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.
  2. Update the README.md with details of changes to the interface. Including new environment variables, exposed ports, useful file locations and container parameters.
  3. Your Pull Request will be merged once it is sign-off by one of the project owners.

Roadmap

Only Heimdall subteam members should create new issues in this repo. If you believe a project should be added within the tracker, please leave a comment on the appropriate "parent" issue, i.e., one of the issues on the repository. Moreover, in general, feel free to use comments to ask questions, pitch ideas, or mention updates that need to be made!

Clone this wiki locally