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

Rethink Watch #128

Open
7 tasks
aravindet opened this issue Dec 10, 2022 · 0 comments
Open
7 tasks

Rethink Watch #128

aravindet opened this issue Dec 10, 2022 · 0 comments

Comments

@aravindet
Copy link
Collaborator

aravindet commented Dec 10, 2022

TL:DR; Replace watch() with incremental read() polling

Why

The current implementation of watch() is complex to implement in providers and doesn't support back-pressure or resumption.

Steps

  • Implement the new where query version semantics ("if-changed-after")
    • Specify that version is a non-negative number, and that version 0 has a special meaning
    • Implement the querying of linked paths in graffy-link and drop graffy-fill completely
    • Restrict the use of finalize() to queries with version 0 in core, pg and link
  • Implement query version filtering in slice(): exclude unchanged from both known and unknown
  • Implement query version filtering in pg by adding a condition on verCol
  • Implement the async iterator form of read() to perform incremental polling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant