Updates to metadata are consistent
Desired Behavior
Metadata updates should have read-your-writes consistency
Benefits
- No more hacky sleeping of time to ensure updates are propagated
- Client acknowledgements are consistent (subsquent reads have the side-effect or someone else's newer updates)
I presume this is not possible when using a Kafka compacted log as a backend?
Its 'possible...' with some interesting techniques. 😄
For example, the resource can "block-and-wait" for a promise with a timeout. The promise waits for a read for the given commandId to make it through the metadata. Once the promise succeeds, you have achieved read-your-writes consistency. If the promise timesout, well, the client is on its own...(with a recommendation that failure is eventually-consistent... the "write succeeded" it just hasn't propagated to the read yet).
I expect this later corner case to happen rarely in practice (e.g. when the embedded stream processor has gone haywire for whatever reason).