Skip to content

docs(streaming): clarify rewind scope - #10927

Open
ReubenBond wants to merge 1 commit into
dotnet:mainfrom
ReubenBond:rb-issue-756-make-streams-rewindable
Open

docs(streaming): clarify rewind scope#10927
ReubenBond wants to merge 1 commit into
dotnet:mainfrom
ReubenBond:rb-issue-756-make-streams-rewindable

Conversation

@ReubenBond

@ReubenBond ReubenBond commented Aug 30, 2026

Copy link
Copy Markdown
Member

Problem

The streaming documentation conflates three different behaviors: subscription cursor rewind within the live Orleans queue cache, receiver recovery from a durable partition checkpoint, and replay from the external transport's retained history. That overstates the current Event Hubs and Redis subscription rewind range and lists Kinesis as rewindable even though its merged adapter reports IsRewindable as false.

Solution

Clarify the provider matrix and streaming guidance so that:

  • Event Hubs and Redis subscription tokens are documented as live-cache bounded
  • Kinesis checkpoint recovery is distinguished from subscription rewind
  • tokens older than the live cache are documented as cache misses in the built-in persistent-provider path
  • custom retained-log adapters are shown where bounded historical readers and cold-to-hot cursor handoff belong

Rationale

Issue #756 specifically requests per-subscription replay from the physical queue after an event leaves the live cache. The current runtime supports adjacent cache rewind and checkpoint recovery behavior, while the requested historical-reader handoff remains a provider design task.

Refs #756

Microsoft Reviewers: Open in CodeFlow

Copilot AI lite review requested due to automatic review settings August 30, 2026 07:20
@ReubenBond ReubenBond added documentation area-streaming Category for Orleans streaming issues labels Aug 30, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

Review tier: Lite
Findings: None

What changed in this PR

Clarifies Orleans streaming “rewind” terminology across the documentation by separating (1) per-subscription cursor positioning within the live Orleans queue cache, (2) receiver recovery via durable checkpoints, and (3) replay from an external transport’s retained history—aligning the provider matrix and guidance with current runtime/provider behavior (notably Kinesis reporting IsRewindable = false).

Changes:

  • Updates the provider capability matrix and per-provider guidance to describe rewindability as live-cache bounded for Event Hubs and Redis Streams and non-rewindable for Kinesis (checkpoint-based recovery only).
  • Documents cache-miss behavior (QueueCacheMissException) when a subscription token predates the live cache, and clarifies that built-in pulling agents do not open historical readers on cache misses.
  • Expands custom adapter guidance to describe where retained-history readers and cold-to-hot cursor handoff belong (adapter-specific cache/receiver composition).
File Description
docs/​site/​src/​content/​docs/​streaming/​stream-providers.md Updates the provider matrix and provider-specific sections to reflect live-cache-bounded rewind and distinguish checkpoint recovery from subscription rewind.
docs/​site/​src/​content/​docs/​streaming/​delivery-semantics.md Refines the definition of rewindability and documents cache-miss behavior and the absence of built-in historical readers on miss.
docs/​site/​src/​content/​docs/​streaming/​data-adapters.md Adjusts Event Hubs adapter wording to emphasize checkpoint recovery and live-cache rewind semantics.
docs/​site/​src/​content/​docs/​streaming/​custom-queue-adapter.md Clarifies the role of IQueueCache.GetCacheCursor vs receiver progression and outlines how retained-history replay belongs in custom adapter composition.
docs/​site/​src/​content/​docs/​implementation/​streams-implementation/​index.md Updates implementation guidance to frame rewindability as cache-range support and to position retained-history replay as adapter-specific.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-streaming Category for Orleans streaming issues documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants