nodes only distribute data, clients issue writes/final state
keep n historical revisions
activation properties: date, percentage of success
rollback
partition data via namespaces, client opt into subscribing
Other ideas to explore
client defines (maybe as a DSL) how rollout proceeds - e.g. not all configuration revisions need the same rollout process, e.g. this change needs immediate effect, or that change needs slow propagation, etc
Consensus
nodes form clusters (same data center/backend links)
clusters form groupings
groupings form deployment
Distribute Data Within Clusters
Need a way to only distribute data to cluster leaders, leaders distribute to peers (e.g. minimize egress between clusters)