Latest Results
Require redis-py 8 so Sentinel data nodes get TCP keepalive by default
redis-py 6 and 7 default `socket_keepalive` to False, so a master that dies
without closing its TCP connections (partition, frozen host) leaves the
messaging consumer's `XREADGROUP` blocked forever on the old socket while
Sentinel promotes a replica in seconds. redis-py 8 enables keepalive with
platform-aware timers (30s idle, 5s interval, 3 probes, macOS `TCP_KEEPALIVE`
fallback) on every connection, including `SentinelManagedConnection`, so a
dead master is noticed in about 45 seconds and the client reconnects through
Sentinel to the new master. URL options such as `?socket_keepalive=false`
still override.
Raising the floor rather than pinning our own keepalive map keeps redis-py
the owner of connection defaults, as asked in review, and matches what CI
actually exercises: the integration lockfile has resolved redis-py 8 since
#22189 added the redis-py 8 connection defaults, and no compat matrix tests
older releases. This is a breaking change for users pinned to redis-py 6 or
7; prefect-redis is pre-1.0, so the next release should bump the minor
version.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>fatih-acar:feat/redis-sentinel-on-22211 Latest Branches
0%
fatih-acar:feat/redis-sentinel-on-22211 0%
devin1/oss-8191-flow-run-reports-completed-then-immediately-gets-overwritten 0%
mikemikimike:fix-event-url-template-22957-work © 2026 CodSpeed Technology