Is it possible to connect the LangGraph Agent Server to a high-availability Redis setup using Redis Sentinel in a self-hosted deployment?
From the documentation, it seems that only standalone Redis or Redis Cluster mode (REDIS_CLUSTER=true) are supported. However, Redis Sentinel uses a different connection mechanism and typically requires a Sentinel-aware client rather than a single redis:// URI.
Does the Agent Server currently support Redis Sentinel directly, or is the recommended approach to expose a stable Redis endpoint (for example via a service, proxy, or load balancer) in front of the Sentinel-managed master?
Redis Sentinel is not natively supported by the LangGraph Agent Server at the moment.
As you noticed, the documented modes are:
Standalone Redis (redis://...)
Redis Cluster (REDIS_CLUSTER=true)
Sentinel requires a Sentinel-aware client (multiple sentinel endpoints + master name), which isn’t something the Agent Server currently exposes configuration for.
Recommended Approach
The typical workaround in self-hosted setups is:
Put a stable endpoint in front of the Sentinel-managed Redis master
Kubernetes Service
HAProxy / Envoy
Internal load balancer
Or another proxy layer
Point the Agent Server to that stable redis:// endpoint
This keeps failover logic handled by Sentinel, while the Agent Server only talks to a single, consistent address.
Why This Is Preferred
Keeps Agent Server config simple
Avoids embedding Sentinel-specific logic
Works cleanly with containerized / Kubernetes deployments
Aligns with how many production HA Redis setups are exposed
If native Sentinel support is something you need long-term, it might be worth opening a feature request — but today, proxying a stable master endpoint is the practical solution.
Did you try updating the `REDIS_URI` to point it towards specifying one Sentinel host i.e. the master e.g ‘redis+sentinel://[[username]:[password]]@[host-or-ip]:[port]/[service-name]/[db-number]‘ I think so that might work but Agent server will loses its ability to discover the Redis master, even if the other sentinels and Redis itself are perfectly healthy.
OR
Just use a load balancer which is pointed towards the Sentinel nodes and point the REDIS_URI at that single endpoint