Join our community: https://t.me/+DOylgFv1jyJlNzM0
Description
SSE broadcasts are in-process only. When the backend runs as multiple instances (e.g., behind a load balancer), a stream event processed by instance A is never broadcast to clients connected to instance B.
What Needs to Happen
- Install
ioredis and configure Redis pub/sub
- On indexer event, publish to Redis channel
stream:{streamId} and user:{address}
- Each instance subscribes to relevant channels and broadcasts to its local SSE clients
- Add
REDIS_URL to .env.example with a graceful fallback to in-process mode when Redis is absent
- Document the multi-instance deployment pattern in README
Files
backend/src/services/sseService.ts
backend/src/lib/redis.ts (create)
Acceptance Criteria
Description
SSE broadcasts are in-process only. When the backend runs as multiple instances (e.g., behind a load balancer), a stream event processed by instance A is never broadcast to clients connected to instance B.
What Needs to Happen
ioredisand configure Redis pub/substream:{streamId}anduser:{address}REDIS_URLto.env.examplewith a graceful fallback to in-process mode when Redis is absentFiles
backend/src/services/sseService.tsbackend/src/lib/redis.ts(create)Acceptance Criteria