Some thoughts on clustering

It would be neat, if multiple cascade instances could run independent of each other (e.g. on separate hosts) but have a shared information base for zone data, key IDs and state and other such things.

At the moment, cascade stores this kind of information as JSON files on disk. Files on disk are a real pain in regards of synchronising across multiple hosts that might be running the cascade instances.

OpenDNSSEC solved this to some degree via the MSSQL or MySQL database backend which stored things like the timing information and key ID. Albeit as far as I recall the structure, there was no shared zone data or synchronised state. Meaning like a lock preventing 2 instances to hit a race conditions and attempt to (re-)sign a zone or rotate the key at the same time if multiple instances were to use the same database.

I’m fully aware that cascade was pretty much just recently released as a alpha version and this kind of features specifically take time. However, I’d be happy if you’d consider this kind of use case in cascade’s further development.

We certainly plan to look into this. However this feature is unlikely to be part of the first production release. We appreciate input on how state synchronization works best from an operational point of view.