---
title: "Operate Redis Streams"
url: "https://docs.caracal.run/v1.0/operations/redis/"
markdown_url: "https://docs.caracal.run/markdown/v1.0/operations/redis.md"
description: "Provision, verify, monitor, and recover Caracal stream and revocation transport."
page_type: "workflow"
concepts: []
requires: []
---

# Operate Redis Streams

Canonical URL: https://docs.caracal.run/v1.0/operations/redis/
Markdown URL: https://docs.caracal.run/markdown/v1.0/operations/redis.md
Description: Provision, verify, monitor, and recover Caracal stream and revocation transport.
Page type: workflow
Concepts: none
Requires: none

---

Redis carries audit, invalidation, revocation, agent, invocation, and delegation streams. It is correctness-critical, not an evictable cache.

## Prerequisites

Use Streams, authentication, persistence, `maxmemory-policy noeviction`, and enough memory. The bundled image uses AOF with `appendfsync everysec`; validate external services separately.

## Procedure

Provisioning is automatic in the bundled stack. From a checkout:

```bash
bash infra/redis/provision-streams.sh
bash infra/redis/scripts/verify.sh
```

Provide Redis host, port, and password file when needed. Monitor stream length, groups, pending entries, reclaim/retry, DLQ, memory, persistence, and latency.

## Verify

Confirm expected streams/groups, idempotent provisioning, `noeviction`, persistence, and policy/revocation/audit delivery.

## Recovery

Restore Redis, verify groups, then drain consumers and replay. Reconcile Postgres outboxes and replay directories. Never delete pending entries or reset groups until durable handling is proven.

## Next Step

Use [Scale Capacity](/v1.0/operations/scale-capacity/) when lag or memory grows.
