# SQ-024: Docker Compose & E2E Example **Status:** `[x] DONE` **Blocked by:** SQ-023 **Priority:** Low ## Description Docker Compose setup for running a 3-node SQ cluster with MinIO, plus an example publish/subscribe program. ## Files to Create/Modify - `templates/docker-compose.yaml` - 3 sq-server instances + MinIO - `templates/sq-server.Dockerfile` - multi-stage build - `examples/publish_subscribe/Cargo.toml` - `examples/publish_subscribe/src/main.rs` - `scripts/grpc.sh` - grpcurl testing helper ## Docker Compose Services - `minio` - S3-compatible object storage - `sq-1` - SQ node 1 (seeds: sq-2, sq-3) - `sq-2` - SQ node 2 (seeds: sq-1, sq-3) - `sq-3` - SQ node 3 (seeds: sq-1, sq-2) ## Acceptance Criteria - [ ] `docker compose up` starts all 4 services - [ ] All 3 SQ nodes discover each other (verify via Status RPC) - [ ] Example program publishes and consumes messages successfully - [ ] Kill one container, cluster continues operating - [ ] Restart container, node catches up