An open API service indexing awesome lists of open source software.

https://github.com/cereebro/cereebro

Automate the documentation of relationships between components in a distributed system
https://github.com/cereebro/cereebro

Last synced: 6 months ago
JSON representation

Automate the documentation of relationships between components in a distributed system

Awesome Lists containing this project

README

          

![Build status](https://travis-ci.org/cereebro/cereebro.svg?branch=master)

# ![Cereebro](https://raw.githubusercontent.com/cereebro/cereebro.github.io/master/images/cereebro.png)

The goal of Cereebro is to automate the documentation of relationships between components in a distributed system.

See a [Cereebro demo live](http://sample.cereebro.io).

## Why

When building a distributed system, it quickly becomes hard to keep track of components and their dependencies.
Writing architecture documents and drawing diagrams is cool, but these pieces of art eventually get obsolete after a few time. Keeping software documentation up-to-date is an ageless problem.
Project Cereebro answers it by generating a map of a system at runtime :

* by simply adding the Cereebro Snitch Spring Boot starter, the context of each application is analyzed to detect its relationships with other components, providing a fragment of the whole system
* the Cereebro server resolves the fragments from every Snitch to reconstitute the big picture

The name Cereebro is inspired by the [X-Men's Cerebro](https://en.wikipedia.org/wiki/Cerebro) device, which allows its user to locate mutants accross the world.

We named it cere**e**bro because :

* cerebro.io wasn't available
* no legal issues with Marvel comics
* [that's the way americans pronounce cerebro anyway](https://www.youtube.com/watch?v=EFyYvdvUEqo)

## Getting Started

Get started with [Cereebro, Spring Cloud Netflix and the Eureka Server](https://github.com/cereebro/cereebro/wiki/Using-Cereebro-with-Spring-Cloud-Netflix-and-the-Eureka-Server).

Learn more in the [project documentation](http://docs.cereebro.io).

Check out our [samples](https://github.com/cereebro/cereebro-samples) and [see them running](http://sample.cereebro.io).

## Continuous Integration

* [Travis CI](https://travis-ci.org/cereebro/cereebro)
* [SONAR](https://sonarqube.com/dashboard?id=io.cereebro%3Acereebro)

## Code Conventions

Java :

* eclipse formatter : "Java conventions with spaces" (we don't know about IntelliJ)
* line width : 120
* indent using spaces only
* auto-format all the things
* Use off/on tags to keep the formatter off sections that need specific formatting (like builders)
* test all the things

XML :

* indent using 4 spaces
* line width : 120

## License

Cereebro is Open Source software released under the [Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0.html).