Skip to content

Redis

Redis is the low-latency coordination service used by the connector queue runtime and realtime fanout.

  • Local development runs redis:8.4.0-bookworm from docker-compose.yml.
  • apps/api uses Redis through BullMQ for connector sync queues and worker coordination.
  • apps/api uses Redis pub/sub for Feathers realtime event fanout across API replicas.
  • Root bun run dev passes Redis realtime env through Turbo so local browser verification uses this same fanout path after bun run docker:up.
  • Meltano Docker mode receives REDIS_URL for runtime coordination paths that need the shared local service.

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.

  1. Check Redis Open Source upgrade docs and release notes for the target version.

  2. Update the Docker image tag in docker-compose.yml.

  3. Restart local infrastructure:

    Terminal window
    bun run docker:down
    bun run docker:up
  4. Verify queue behavior:

    Terminal window
    bun run test:api:connectors:e2e:ephemeral
    bun run test:api:connectors:restart:e2e
    bun run test:api:connectors:realtime
  5. Verify realtime fanout with two API runtime instances or the focused Redis fanout test when the upgrade affects client behavior.

  6. 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.

  • 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.
  • docker-compose.yml
  • apps/api/src/connectors/
  • apps/api/src/realtime/
  • apps/api/package.json
  • docs/features/realtime/spec.md
  • docs/features/connectors/spec.md
  • docs/features/ingestion/spec.md