Dkron 2.0 Preview
After 6 months of the 1.0 milestone, the v2 is on the works and approaching stability. Several big architecture changes lead to the necessity of a new major release.
Dkron development started 4 years ago and at the time the available options and maturity of Go libraries weren’t what it is today. Dkron is a distributed system but relies on the existing distributed KV stores to implement high availability. This forced you to install one of the allowed DBs to be able to create a dkron cluster. You not only need to know how to operate Dkron itself but also the underlying KV store. That was the price to pay for a well implemented distributed system.
Now, things are quite different, the stability and maturity of the available Raft protocol libraries for Go have improved a lot and the local store libraries too.
I made the decision to implement a combination of those libraries to allow dkron to work without relying on any external system.
The selected libraries are, Hashicorp’s implementation of Raft protocol, the same used by Consul and Nomad, and BadgerDB, a super fast, local, transactional KV store database used in Dgraph’s distributed graph database.
Thanks to this technologies dkron, is now just a single binary that replicates data itself.
Aside from this change, the API will remain the same in this version, just adding some feature, and also fixing some existing bugs.
This architectural change will allow for better support, better reliability I hope, and faster development, easier deployment, because I won’t need to address problems with 3rd party systems, I will have more time to spend improving dkron itself.
Hope you enjoy it!