| name | demo |
| description | Launch a complete production demo by rebuilding all images and starting the full stack. Use when preparing a fresh demonstration. |
| metadata | {"author":"Alexandre Roman","version":"1.1"} |
Production Demo Launch
Launch a complete production demonstration with all services containerized.
Quick Demo Launch
docker compose up -d
docker compose ps
docker compose logs -f
โ Open your browser at http://localhost:8080
What's Included
The production stack includes all services running in Docker:
Frontend:
- Dashboard (static Nuxt.js build)
- Gateway (Caddy reverse proxy)
Infrastructure:
- Temporal Server + UI
- Redis (in-memory)
- Toxiproxy (chaos engine)
- Chaos Service (control plane)
- Chaos Helper (error response provider)
Business Services:
- Customer Service (Go + Redis)
- Email Service (Python/FastAPI)
- Redemption Service (TypeScript/Node.js)
- Loyalty Service (Java/Spring Boot + Temporal)
Demo Features
Once running, you can:
- Create and enroll customers in the loyalty program
- Earn points from purchases with automatic level upgrades
- Spend points using the SAGA pattern with compensation
- Leave and rejoin the program with 30-day grace period
- Inject chaos to demonstrate resilience (ON/OFF/SLOW/KILL)
- Monitor workflows in Temporal UI at http://localhost:8233
Network Isolation
Production mode uses 4 specialized networks:
- frontend-net: Public-facing services (Gateway, Dashboard, Chaos Service)
- backend-net: Business logic services
- temporal-net: Temporal Server + Loyalty Service only
- data-net: Redis + Customer Service only
Rebuilding Images (Optional)
Only needed if you've made code changes:
docker compose build
docker compose build --no-cache
docker compose up -d
Stopping the Demo
docker compose down
docker compose down -v
Troubleshooting
If services fail to start:
docker compose logs
docker compose restart loyalty-service
docker compose up -d --build loyalty-service
If port 8080 is already in use:
netstat -ano | findstr :8080
lsof -i :8080
Notes
- All data is ephemeral (in-memory only, no persistence)
- Services auto-restart on failure (Docker restart policy)
- Dashboard is pre-built as static files (no hot reload)
- All services communicate via internal Docker networks
- Only ports 8080 (Gateway) and 8233 (Temporal UI) are exposed