Redis
Redis is the low-latency coordination service used by the connector queue runtime and realtime fanout.
What It Owns
Section titled “What It Owns”- Local development runs
redis:8.4.0-bookwormfromdocker-compose.yml. apps/apiuses Redis through BullMQ for connector sync queues and worker coordination.apps/apiuses Redis pub/sub for Feathers realtime event fanout across API replicas.- Root
bun run devpasses Redis realtime env through Turbo so local browser verification uses this same fanout path afterbun run docker:up. - Meltano Docker mode receives
REDIS_URLfor runtime coordination paths that need the shared local service.
Architecture Decision
Section titled “Architecture Decision”Decision: use Redis as the queue coordination backend, with BullMQ owning queue semantics in application code. Use Redis pub/sub as the API replica fanout layer for Feathers realtime events.
Redis is infrastructure here. Do not store source content, connector payload archives, or product policy in Redis.
How To Upgrade
Section titled “How To Upgrade”-
Check Redis Open Source upgrade docs and release notes for the target version.
-
Update the Docker image tag in
docker-compose.yml. -
Restart local infrastructure:
Terminal window bun run docker:downbun run docker:up -
Verify queue behavior:
Terminal window bun run test:api:connectors:e2e:ephemeralbun run test:api:connectors:restart:e2ebun run test:api:connectors:realtime -
Verify realtime fanout with two API runtime instances or the focused Redis fanout test when the upgrade affects client behavior.
-
For production/customer-cluster Redis upgrades, use a deployment runbook and verify persistence, eviction policy, auth, and network access. BullMQ docs warn that Redis key eviction can cause unexpected queue errors, so runtime Redis should use a no-eviction policy.
Current Limits
Section titled “Current Limits”- Redis must not become a hidden product data store.
- Queue recovery behavior belongs in API tests, not manual Redis state edits.
- Realtime pub/sub payloads must stay typed domain events from shared contracts, not arbitrary channel messages.
- Treat customer-cluster Redis settings as a security and reliability boundary.
Canonical Sources
Section titled “Canonical Sources”docker-compose.ymlapps/api/src/connectors/apps/api/src/realtime/apps/api/package.jsondocs/features/realtime/spec.mddocs/features/connectors/spec.mddocs/features/ingestion/spec.md