docs: document Redis as a required dependency#343
Merged
Conversation
Redis is required at runtime for any agent that streams or sends messages, but the docs presented it as optional. Locally this is masked by the Docker stack (which starts Redis automatically), and in deployment REDIS_URL was treated like an optional custom secret — so an agent could deploy successfully and then fail the first time it streams. Document it as required everywhere a developer encounters it: - README prerequisites + CLAUDE.md: Redis is required for local dev; the Docker stack starts it automatically; a local Redis conflicts on 6379 - concepts/streaming: streaming and messaging are backed by Redis - configuration (credentials mapping): REDIS_URL is a required credential - deployment/overview: REDIS_URL is a required deployment secret - deployment/cicd: REDIS_URL is a required baseline secret, and fix the misleading redis://localhost/ example value Docs only; no code or template changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
danielmillerp
approved these changes
Jul 1, 2026
danielmillerp
left a comment
Collaborator
There was a problem hiding this comment.
awesome looks great !!!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Redis is required at runtime for any agent that streams or sends messages, but the docs presented it as optional. Locally that's masked — the Docker stack starts Redis automatically — and in deployment
REDIS_URLread like an optional custom secret. The result: an agent can pass local testing, deploy successfully, and then fail the first time it streams, with no clear signal that Redis was the missing piece.This PR makes the docs tell the truth in every place a developer encounters Redis or credential mapping.
What changed
README.mdCLAUDE.mdconcepts/streaming.mdconfiguration.mdREDIS_URLis a required credential, not optionaldeployment/overview.mdREDIS_URLto deployment prerequisitesdeployment/cicd.mdREDIS_URLas a required baseline secret; fix the misleadingredis://localhost/example valueScope
Docs only — no code or template changes. This PR documents the existing requirement; it does not change runtime behavior.
Follow-ups (not in this PR)
REDIS_URL"Optional". The scaffolding templates and example manifests inscale-agentex-pythonstill presentREDIS_URLas optional (and apply it inconsistently). They should be relabeled as required and made consistent.REDIS_URLautomatically at deploy. Longer term, the platform could injectREDIS_URLthe way it already provides other backing-service connectivity, so agent authors don't configure it by hand.Verification
make build-docspasses; all internal doc links resolve.Greptile Summary
This is a docs-only PR that corrects the documentation to accurately reflect that Redis is a required runtime dependency for any agent that streams or sends messages, not an optional one. Previously, local development masked this requirement because the Docker stack auto-starts Redis, while
REDIS_URLread as an optional custom secret in deployment docs.redis://localhost/example value incicd.mdis replaced with a placeholder that makes clear a real connection string is needed in production.Confidence Score: 5/5
Docs-only change with no runtime behavior modifications; safe to merge.
All six files contain purely documentation edits. Internal anchor links resolve correctly, cross-file relative paths are correct, the fixed redis://localhost/ placeholder is a clear improvement, and the new notes are consistent with one another. No code paths are touched.
No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD Dev["Developer writes agent\n(streaming / messaging)"] --> Local["Local development\n./dev.sh / make dev"] Dev --> Deploy["Production deployment\nKubernetes cluster"] Local --> DockerStack["Docker Compose stack\nauto-starts Redis\non port 6379"] DockerStack --> LocalRedis["Redis @ localhost:6379\n(no install needed)"] DockerStack -- "port conflict if" --> LocalRedisRunning["Local Redis already running\n→ stop it first"] Deploy --> SecretsSync["agentex secrets sync\nwith prod-secrets.yaml"] SecretsSync --> REDIS_URL["REDIS_URL_SECRET\n= your-redis-connection-string\n(TLS: rediss://host:6380)"] REDIS_URL --> ProdRedis["Reachable Redis instance\nrequired — none auto-provided"] LocalRedis --> AgentLocal["Agent streams & messages\n✅ work locally"] ProdRedis --> AgentProd["Agent streams & messages\n✅ work in production"] style LocalRedis fill:#4CAF50,color:#fff style ProdRedis fill:#4CAF50,color:#fff style LocalRedisRunning fill:#F44336,color:#fff%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD Dev["Developer writes agent\n(streaming / messaging)"] --> Local["Local development\n./dev.sh / make dev"] Dev --> Deploy["Production deployment\nKubernetes cluster"] Local --> DockerStack["Docker Compose stack\nauto-starts Redis\non port 6379"] DockerStack --> LocalRedis["Redis @ localhost:6379\n(no install needed)"] DockerStack -- "port conflict if" --> LocalRedisRunning["Local Redis already running\n→ stop it first"] Deploy --> SecretsSync["agentex secrets sync\nwith prod-secrets.yaml"] SecretsSync --> REDIS_URL["REDIS_URL_SECRET\n= your-redis-connection-string\n(TLS: rediss://host:6380)"] REDIS_URL --> ProdRedis["Reachable Redis instance\nrequired — none auto-provided"] LocalRedis --> AgentLocal["Agent streams & messages\n✅ work locally"] ProdRedis --> AgentProd["Agent streams & messages\n✅ work in production"] style LocalRedis fill:#4CAF50,color:#fff style ProdRedis fill:#4CAF50,color:#fff style LocalRedisRunning fill:#F44336,color:#fffReviews (2): Last reviewed commit: "Merge branch 'main' into docs/redis-loca..." | Re-trigger Greptile