iGent Concert
/podium/deployment/

Deployment

Deploying Podium in production with Docker, ECS, and Terraform

Docker Image

The Podium Docker image includes the coordinator, gateway, and Chronicle:

cd podium
./build_image.sh staging  class="token comment"># or production

The build script: 1. Checks for Chronicle source at parent directory level 2. Copies Chronicle into build context 3. Builds multi-stage Docker image (Rust compilation + runtime) 4. Optionally deploys to ECS with --deploy

Running with Docker

docker run -p 8002:8002 -p 8003:8003 \
  -e CHRONICLE_ENABLE=true \
  -e CHRONICLE_S3_BUCKET=my-chronicle-cas \
  -e AWS_REGION=us-east-1 \
  -e S3_BUCKET=my-deployment-registry \
  -e VALKEY_URL=redis://valkey:6379 \
  -e ADMIN_API_KEY=pod_admin_... \
  -e SECRETS_KEY=... \
  --privileged \  class="token comment"># Required for FUSE
  podium:latest
                    ALB
                     │
              ┌──────┴──────┐
              ▼              ▼
         Gateway-1      Gateway-2
              │              │
              └──────┬───────┘
                     │
                  Valkey
                     │
         ┌───────────┼───────────┐
         ▼           ▼           ▼
    Coordinator  Coordinator  Coordinator
    (ECS Task)   (ECS Task)   (ECS Task)

AWS Components

ComponentServiceNotes
GatewayECS FargateStateless, horizontally scalable
CoordinatorECS EC2Needs FUSE (privileged), stateful
Service DiscoveryElastiCache (Valkey)Coordinator registration
Deployment RegistryS3Agent bundles
State ReplicationS3 (Litestream)Agent databases
CAS StorageS3Chronicle content-addressable storage
ObservabilityCloudWatch (OTLP)Traces + metrics

Terraform

Podium includes Terraform modules for AWS deployment covering ECS services, ALB configuration, Valkey cluster, S3 buckets, IAM roles, and security groups.

Scaling

  • Gateway: Stateless — scale horizontally behind ALB
  • Coordinator: Stateful — scale by adding instances; Valkey distributes new agents to least-loaded coordinator
  • Agents: Scale within a coordinator up to resource limits; scale out by adding coordinators