Skip to content

Active:Active support (3.1)#3025

Open
mgravell wants to merge 22 commits into
mainfrom
marc/aa2
Open

Active:Active support (3.1)#3025
mgravell wants to merge 22 commits into
mainfrom
marc/aa2

Conversation

@mgravell

@mgravell mgravell commented Mar 5, 2026

Copy link
Copy Markdown
Collaborator

initial active:active

  • basic connect
  • automatic ongoing active group detection
  • command routing
  • pubsub routing
  • pubsub unsubscribe
  • improved configuration for down-detection via circuit-breaker (not just health-check)
  • align config API with other libraries (slightly complicated because of multiplexer vs pool, i.e. there are some fundamental differences between the cores)
  • command retry
    • transactions and batches
  • review config APIs - there are 4 in here (retry, circuit-breaker, health-check, multi-group), and they're not 100% in alignment

@mgravell
mgravell marked this pull request as ready for review March 16, 2026 11:30

@uglide uglide 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.

The main missing peaces at this stage:

  • Circuit breaker/Failure detector on the organic load
  • Retries
  • Per-member health checks
  • Limited configuratbility and deviations in the default values (see inline comments)

Comment thread src/StackExchange.Redis/Availability/HealthCheck.cs
Comment thread src/StackExchange.Redis/Availability/MultiGroupOptions.cs
Comment thread src/StackExchange.Redis/Interfaces/IConnectionGroup.cs
mgravell added 14 commits July 10, 2026 10:39
* move things around and write core

* bucket logic

* buildable

* nit

* add unit tests

* end-to-end tests

* docs

* improve circuit-breaker reactivity

* gate health-checks, since it can now run concurrently due to circuit-breaker

* end-to-end tests
* start dedup core

* find classes

* start stubbing class

* successfully stub out all methods (it compiles!)

* stub out execute and tuples

* generalize mutator API to include channels

* wip

* fundamentals: compile (untested)

* I *think* this is the core retry logic!

* nit

* fix build

* iterating on RetryPolicy

* nits

* start command categorization

* cleanup API

* duplicate .Database into IDatabaseAsync (from IDatabase)

* unit tests

* end to end test, but it highlights a design fault

* retry logic

* nits

* end-to-end tests

* docs

* namespace
@mgravell mgravell changed the title multi geo support Active:Active support Jul 17, 2026
@mgravell mgravell changed the title Active:Active support Active:Active support (3.1) Jul 17, 2026
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.

2 participants