Skip to content

Add cross-channel invalidation support#2

Merged
waywardmonkeys merged 2 commits into
mainfrom
cross-channel
Apr 5, 2026
Merged

Add cross-channel invalidation support#2
waywardmonkeys merged 2 commits into
mainfrom
cross-channel

Conversation

@waywardmonkeys
Copy link
Copy Markdown
Contributor

@waywardmonkeys waywardmonkeys commented Apr 5, 2026

This PR expands invalidation with cross-channel invalidation support.

What Changed

  • Added standalone ChannelCascade for channel-to-channel invalidation rules.
  • Added standalone CrossChannelEdges for sparse cross-key, cross-channel dependencies.
  • Integrated both into InvalidationTracker.
  • Extended tracker marking to apply channel cascades and follow cross-channel edges for the built-in eager and lazy policies.
  • Added multi-channel draining and cross-channel reachability queries on InvalidationTracker.
  • Tightened docs around the limits of custom PropagationPolicy implementations when cross-channel follow-up is involved.

Notes

  • mark and mark_with only change behavior when cascades or cross-channel edges are configured.
  • Cross-channel follow-up is fully defined for the built-in eager and lazy policies.
  • Custom policies remain same-channel extension points; off-graph keys they mark do not automatically trigger cross-channel traversal.

Add ChannelCascade for channel-to-channel invalidation rules with cycle
rejection and precomputed transitive closure, plus CrossChannelEdges for
sparse (key, channel) -> (key, channel) dependencies with forward and
reverse indexing.

Keep both types usable without InvalidationTracker so embedders can adopt
and test the primitives independently.
Integrate channel cascades and cross-channel edges into tracker marking,
including full closure for the built-in eager and lazy policies.

Also add multi-channel draining, cross-channel reachability queries, and
document the limits of custom policies when cross-channel follow-up is
involved.
@waywardmonkeys waywardmonkeys merged commit d5a6ab6 into main Apr 5, 2026
15 checks passed
@waywardmonkeys waywardmonkeys deleted the cross-channel branch April 5, 2026 13:38
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

Successfully merging this pull request may close these issues.

1 participant