# Plan a self-managed Agent Memory deployment

```json metadata
{
  "title": "Plan a self-managed Agent Memory deployment",
  "description": "Choose a self-managed Redis Agent Memory deployment mode before installing the Helm chart.",
  "categories": ["docs","develop","ai"],
  "tableOfContents": {"sections":[{"id":"deployment-modes","title":"Deployment modes"},{"id":"mode-rules","title":"Mode rules"},{"id":"before-you-deploy","title":"Before you deploy"}]}

,
  "codeExamples": []
}
```
Choose the deployment mode before you create Redis databases, configuration
Secrets, or Helm values.

## Deployment modes

| Mode | What it deploys | Redis databases | Data Plane auth | Start here |
| --- | --- | --- | --- | --- |
| Static stores | Data Plane and, when enabled, Agent Memory workers. Stores are declared directly in `memory-dataplane.config.yaml`. | Store Redis. Job Redis when workers are enabled. | Disabled at the Agent Memory layer. Protect access with Kubernetes, ingress, gateway, or service-mesh controls. | [Deploy with static stores](https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/self-managed/deploy-static) |
| Control Plane managed stores | Data Plane, Control Plane, and, when enabled, Agent Memory workers. Stores and agent keys are managed at runtime. | Store Redis, Metadata Redis, and Job Redis when workers are enabled. | Auth-disabled Data Plane or Agent Memory agent keys. | [Deploy with Control Plane managed stores](https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/self-managed/deploy-control-plane) |

## Mode rules

Do not combine static `metadata.stores` with Control Plane managed store
metadata in the same Data Plane config. Static stores do not use Metadata Redis.
Control Plane managed stores use `metadata.source: live` and require Metadata
Redis.

Agent-key authentication requires Control Plane managed stores because the Data
Plane reads agent-key records and store grants from Metadata Redis.

The walkthroughs in this section use `redis-agent-memory` as the Helm release
name. If you choose a different release name, update release-derived service and
deployment names in the verification commands.

## Before you deploy

1. Review [prerequisites](https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/self-managed/prerequisites).
1. Prepare the appropriate [Data Plane configuration](https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/self-managed/data-plane-configuration).
1. Follow either [Deploy with static stores](https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/self-managed/deploy-static) or [Deploy with Control Plane managed stores](https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/self-managed/deploy-control-plane).

