Docker Image

The Podium Docker image includes the coordinator, gateway, and Chronicle:
cd podium
./build_image.sh staging  # 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 8090:8090 -p 9090:9090 \
  -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 \  # Required for FUSE
  podium:latest
--privileged or --cap-add SYS_ADMIN --device /dev/fuse is required for Chronicle FUSE mounts inside containers.

Production Architecture

                    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