Welcome to Central Dogma¶
Central Dogma is an open-source highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
With Central Dogma, you can:
- Store your configuration files such as
.json
,.yaml
and.xml
into a centralized, multi-master replicated, version-controlled repository. - Retrieve your configuration using RESTful API, Java library and command-line client.
- Let your servers get notified immediately when the configuration files are updated and the new settings are applied without server restarts.
- Send a pull request for configuration changes and get it reviewed and merged by teammates; much less chance of making a bad configuration change!
Download now and give it a try (Java required):
$ tar zxvf centraldogma-0.17.0.tgz $ cd centraldogma-0.17.0/ $ bin/startup # Open http://127.0.0.1:36462/ in your browser for administrative console.
Using Docker? Give our image a try:
$ docker run -p 36462:36462 line/centraldogma
Repository service for textual configuration¶
- Primarily designed for storing JSON
- Also supports any text formats such as YAML, XML, INI and even JavaScript
- Store your start-time and run-time settings, such as:
- Application parameters and bean properties
- User and IP blacklists
- Scheduled maintenance notice
- Roll-out and A/B experiment parameters
- Rule engine scripts
Highly-available¶
- Multi-master replicated
- Using Apache ZooKeeper as a replication log queue
Version-controlled¶
- Keeps full history of configuration changes in Git repositories.
- Can hold a lot more information than in-memory competitors.
Query and notification mechanism¶
- Query your JSON files with JSON path.
- Watch your files and get notified immediately when they are modified.
Automated mirroring from an external Git repository¶
- Keep your settings in a GitHub or GitLab repository.
- Send a pull request to modify the settings and get it reviewed and merged.
- Let Central Dogma mirror your settings so your settings are:
- Highly-available
- Queryable
- Watchable