> Have you thought about using Avro/JSON as the serialization format? It would then be easier to evolve.
I believe the current format is good enough for now. I suggest we should change it later when the state data model evolves.
> Have a parser object that has public methods that are easier to test than the ones on ClusterStateStore. They don't really belong there as the ClusterStateStore could use any representation it chooses.
> Rather than use NoopClusterStateStore, the default might be in-memory (which you implemented elsewhere)?
I will address these two issues in one step later while improving code testability.