3 months ago
Hi Railway team,
I'm experiencing unexpectedly high latency (100ms-10s+) on Redis operations, even though I'm using private networking for service-to-service communication. This happens any time I make more than a few dozen redis requests at once.
What I'm Seeing
My application timers show 100-200ms+ per GET/SET operation
The latency persists even for simple single-key operations
This suggests ~96-196ms of overhead in the network path
My Setup
Services:
Multiple Node.js services on Railway
Railway Redis instance
All communicating via private networking (.railway.internal hostnames)
Redis Client: ioredis v5.x with the following configuration:
// Base options
{
reconnectOnError: () => true,
connectTimeout: 5000,
retryStrategy: (times) => Math.min(times * 50, 2000),
maxRetriesPerRequest: 1,
enableReadyCheck: true,
autoResubscribe: true,
keepAlive: 30000,
enableAutoPipelining: true,
family: 0,
}Connection: Single persistent connection (not pooling), reused across requests. I've tried pooling with ioredis-conn-pool as well but no improvement
What I've Verified
✅ Using private networking hostname (not public proxy)
✅ Redis LATENCY DOCTOR shows server is healthy (1-4ms command latency)
✅ Connection is established and stable (no reconnection churn)
✅ Services are located in the same region
Questions
Is there any known latency overhead on private networking between Railway services?
Is there any proxy/routing layer even on private networking that could add latency?
Are there any recommended configurations for low-latency Redis access?
I'd expect private networking latency to be <5ms for simple operations, but I'm consistently seeing 100ms+ when making more than a couple dozen requests at the same time.
Thanks for any insights!