33 lines
1001 B
Markdown
33 lines
1001 B
Markdown
# SQ-024: Docker Compose & E2E Example
|
|
|
|
**Status:** `[ ] TODO`
|
|
**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
|