Skip to content

DOC-6872 Document StackExchange.Redis Active-Active geo-failover - #3740

Open
andy-stark-redis wants to merge 3 commits into
mainfrom
DOC-6872-dotnet-geo-failover
Open

DOC-6872 Document StackExchange.Redis Active-Active geo-failover#3740
andy-stark-redis wants to merge 3 commits into
mainfrom
DOC-6872-dotnet-geo-failover

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Description

Documents StackExchange.Redis's client-side geographic (Active-Active) failover support, shipped in the v3.1.0 GA release (StackExchange/StackExchange.Redis#3025).

Adds a new per-client page, dotnet/failover.md, modeled on the existing Jedis and redis-py failover pages, covering the StackExchange.Redis.Availability API:

  • Connecting to a group of endpoints (ConnectGroupAsync), endpoint and group configuration
  • Circuit breakers, automatic retries (WithRetry), and which operations are safe to retry
  • Failback (IsConnected vs IsUnhealthy, FailbackDelay), manual failover (TryFailoverTo)
  • Health checks (probe types, policies, per-member), managing members at runtime, monitoring, and Pub/Sub re-subscription

Also adds a StackExchange.Redis row to the supported-clients table on the failover overview page.

Notes for reviewers

  • OSS Cluster failover cell — I marked this Yes in the overview table by inference (the multiplexer natively supports cluster endpoints, group members accept full ConfigurationOptions, and upstream's custom-probe docs handle cluster key routing), but upstream has no section stating it outright. Worth confirming with the SE.Redis maintainer before merge.
  • GA, not preview — unlike the redis-py and Lettuce rows, 3.1.0 is a stable release, so this row has no "(Preview)" marker and the page carries no preview banner.
  • Deliberately omitted the "Behavior when all endpoints are unhealthy" and "Troubleshooting" sections that Jedis/redis-py have — upstream docs don't provide sourced SE.Redis material for them yet.

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only changes with no runtime, auth, or data-path impact.

Overview
Adds StackExchange.Redis client-side geographic failover documentation for the v3.1.0 StackExchange.Redis.Availability API, aligned with the existing Jedis/redis-py failover pages.

The new dotnet/failover.md page covers ConnectGroupAsync / ConnectionGroupMember groups, MultiGroupOptions (health checks, circuit breakers, retry policy), WithRetry() and command retry categories, failback (FailbackDelay, IsConnected / IsUnhealthy), runtime member management and TryFailoverTo(), ConnectionChanged monitoring, and Pub/Sub with automatic re-subscription. It also documents the SER007 / [Experimental] usage note for the availability namespace.

The failover overview (failover.md) links to the new page in relatedPages and adds a supported-clients table row listing basic failover, pub/sub failover, OSS cluster failover, and failback as Yes (GA, no preview marker).

Reviewed by Cursor Bugbot for commit ee2078b. Bugbot is set up for automated code reviews on this repo. Configure here.

Add a client-side geographic failover page for StackExchange.Redis,
covering the Availability namespace shipped in v3.1.0: connecting to a
group of endpoints, per-endpoint and group configuration, circuit
breakers, automatic retries, failback, manual failover, monitoring, and
Pub/Sub re-subscription. Add StackExchange.Redis to the supported-clients
table on the failover overview page.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 5 related items from repository history:

Memory updated at 533ca77

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

DOC-6872

@andy-stark-redis andy-stark-redis self-assigned this Aug 3, 2026
@andy-stark-redis andy-stark-redis added the clients Client library docs label Aug 3, 2026
@andy-stark-redis
andy-stark-redis requested review from a team and mgravell August 3, 2026 11:54
The StackExchange.Redis.Availability types are marked [Experimental] and
emit the SER007 compiler diagnostic, so code using them will not build
until it is suppressed. Add a note explaining this and giving both
suppression methods (.csproj NoWarn and #pragma). The feature itself is
fully supported/production-ready per upstream (docs/exp/SER007.md), so
the support-table framing is unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 5 related items from repository history:

Memory updated at 58af957

@dwdougherty dwdougherty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Language LGTM.

@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

Thanks @dwdougherty !

@mgravell

mgravell commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

unlike the redis-py and Lettuce rows, 3.1.0 is a stable release,

The release is stable / GA, but we've left a small [Experimental("SER007")], which links here - I don't know if this changes things at all.

Ignore me, I see you've covered that.

Comment thread content/develop/clients/dotnet/failover.md Outdated
@mgravell

mgravell commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

I guess there's always going to be a lot of duplication between these docs and the library docs, but: there's a lot of duplication here; a small part of me wonders whether "keep minimal, and link" is better, but: obviously please follow whatever the normal approach is

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 5 related items from repository history:

Memory updated at ee2078b

@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

I guess there's always going to be a lot of duplication between these docs and the library docs, but: there's a lot of duplication here; a small part of me wonders whether "keep minimal, and link" is better, but: obviously please follow whatever the normal approach is

Yeah, this has always been an issue with some of these client-specific docs. I'm currently implementing some changes in the docs build so that our source files can be more like "standard" Markdown (they currently have loads of Hugo-specific stuff in them). This should hopefully give us the option of keeping all the client-specific docs in the SE.Redis repo and sharing the content between redis.io and the SE.Redis library docs. Note that I'm not pushing for this approach or recommending it yet but it might be something we could consider in the future if it's useful.

Anyway, for now I'll continue with the existing approach for the geo failover docs, but thanks for sharing your thoughts about this.

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

Labels

clients Client library docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants