Skip to content

Rethink Watch #128

@aravindet

Description

@aravindet

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions