[ANN] Cerberus, An EventStore administration tool.


I’m happy to announce the release of Cerberus, an EventStore administration tool.

Here’s a list of current features:

  • Show database (node or cluster) information

  • Database healthiness check-up (cluster mode included)

  • Comprehensive event listing

  • Comprehensive stream listing

  • Comprehensive projection listing

  • Comprehensive persistent subscription listing

  • Create / Update / Delete persistent subscription

  • Create user-defined projection

  • Comprehensive data migration (from one database to another)

  • Create backup (using rsync internally)

  • Compliance checking (my favourite feature so far). You declare a list of requirements in a TOML file, Cerberus makes sure all the requirements are met, for example

  • With persistent subscriptions, make sure those exist. If those don’t, Cerberus creates them. If those exist, Cerberus make sure their configuration matches the specification. If those don’t, those get updated. Cerberus displays the differences in git-diff-like format to see in which way those differ.

  • With user-defined projections, Cerberus does the same thing but is also able to display source code differences.

I’m joining a couple of screenshots that showcase what the compliance checking feature can do.

There are many other features I want to add to Cerberus. I strongly encourage you to check the repository1 out to see in more details what this project is about and also have some documentation on commands. FYI, Cerberus is written in Rust and uses my Rust TCP eventstore client2. You have probably heard that ES 6 (preview) is out and as I’m writing this, I’m

in the middle of supporting that brand-new gRPC feature so you could play with it :-]. I will do the same for my Haskell EventStore client3 later on. Both Cerberus4 and my Rust EventStore client5 are in Crates.io.

If you have questions on anything on what I said above, I will gladly answer them in this thread.