Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to metadata are consistent #116

Open
neoword opened this issue Feb 9, 2019 · 2 comments
Open

Updates to metadata are consistent #116

neoword opened this issue Feb 9, 2019 · 2 comments
Labels
enhancement New feature or request

Comments

@neoword
Copy link
Contributor

neoword commented Feb 9, 2019

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)
@neoword neoword added the enhancement New feature or request label Feb 9, 2019
@teabot
Copy link
Contributor

teabot commented Apr 3, 2019

I presume this is not possible when using a Kafka compacted log as a backend?

@neoword
Copy link
Contributor Author

neoword commented Apr 3, 2019

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants