redis: support Sentinel and Cluster, and set explicit client timeouts
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- go, helm, kubernetes, redis
- Domain
- backend, data-engineering, databases
Research direction
Start by reading storage.NewRedis, FetchMany, and the transient error classification in internal/storeerr; inspect the chart values for the Redis options. Then trace the XCom key construction and existing integration tests to understand how Sentinel failover and Cluster key grouping are exercised. Done means a Sentinel failover integration test passes while tasks push and fetch XCom, transient errors are tolerated during the failover window, and the options have documented defaults.
Written by the indexing model from the issue text.
Description
Why
storage.NewRedis builds a single node client from a URL with library defaults for pool size and timeouts. A managed Redis with one failover endpoint works, but self-managed Sentinel or Redis Cluster does not, and the 3 s default read timeout is long for the live tail path.
What
- Build the client with
redis.NewUniversalClient, configured from the URL or explicit keys (redis.sentinel.master,redis.sentinel.addrs,redis.cluster.addrs), with chart values to match. - In Cluster mode, keys read together by
FetchManyshare a hash tag (the run part of the XCom key). - Explicit
dial_timeout,read_timeout,write_timeoutandpool_sizewith documented defaults.
Done when
An integration test fails over a Sentinel pair while tasks push and fetch XCom, the transient error classification (internal/storeerr) rides through the window without failing tasks, and the options are documented.
Generated by Claude Code
- Dominant language
- Go
- Stars
- 46
- Forks
- 1
- Avg merge
- 10h 26m
- Merged PRs (30d)
- 606
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dexadata/dexaflow
-
area/docs documentation priority/p3
Difficulty 1/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 58/100
Maintainers usually reply within 1 day
-
CI is red on mainOpenci-red
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Maintainers usually reply within 1 day
-
area/storage enhancement priority/p3
Difficulty 4/5 3-5 days Newbie friendliness 43/100
Maintainers usually reply within 1 day
-
area/api area/storage enhancement priority/p3
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
All issues in dexadata/dexaflow
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
[Bug] K8s reconcile still resets explicit 0 to defaults for response_api, memory and flow statePossibly taken @Bevisy claimed this today. Openneeds-acceptance
Difficulty 2/5 1-3 hours Newbie friendliness 87/100
vllm-project/semantic-router#5998 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
devantler-tech/ksail#8256 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
desktop v3 windows
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
esengine/DeepSeek-Reasonix#15016 · 1 comment ·
Maintainers usually reply within 1 day