Automate the documentation of relationships between components in a distributed system
Java HTML JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cereebro-core
cereebro-server-spring-boot-starter
cereebro-server-tests
cereebro-server
cereebro-snitch-spring-boot-starter
cereebro-snitch
.gitignore
.travis.yml
LICENSE.txt
README.md
lombok.config
pom.xml

README.md

Build status

Cereebro

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

See a Cereebro demo live.

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 device, which allows its user to locate mutants accross the world.

We named it cereebro because :

Getting Started

Get started with Cereebro, Spring Cloud Netflix and the Eureka Server.

Learn more in the project documentation.

Check out our samples and see them running.

Continuous Integration

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.