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 :
- cerebro.io wasn't available
- no legal issues with Marvel comics
- that's the way americans pronounce cerebro anyway
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.