Skip to content

Latest commit

 

History

History
99 lines (82 loc) · 2.29 KB

File metadata and controls

99 lines (82 loc) · 2.29 KB

OpenWager Instruction Manual (Docker + Single E2E Flow)

Use this guide to run the full stack in Docker, validate core health, execute one end-to-end flow, and run the Locust load test.

Prerequisites

  • Docker Engine/Desktop with Compose plugin
  • make
  • curl
  • python3 (used by the E2E helper script)

1) Start the full stack

cp .env.example .env
make up-all

Optional quick container check:

docker compose -f docker-compose.infra.yml -f docker-compose.observability.yml -f docker-compose.yml ps

2) Run migrations, seed data, and start the pipeline

make seed-docker
make start-pipeline-docker

This performs:

  • schema migrations for all services
  • seed commands for all services
  • Kafka topic creation
  • background consumers + scheduled snapshot writer + simulation startup

3) Verify service readiness and dashboards

Health checks:

curl http://localhost:8001/health  # PulseFeed
curl http://localhost:8002/health  # BetCore
curl http://localhost:8003/health  # PromoGuard
curl http://localhost:8004/health  # RankForge
curl http://localhost:8005/health  # OpsArena

Dashboard URLs:

4) Run one E2E API flow

Run the reusable script from repository root. It:

  • discovers a fixture/market/odds from PulseFeed,
  • places a valid idempotent bet in BetCore,
  • waits for settlement,
  • verifies RankForge, PromoGuard, and OpsArena read paths.
make e2e-flow-docker

Equivalent direct invocation:

python3 tools/scripts/run_e2e_api_flow.py

Strict mode (fail if settlement is not observed within timeout):

python3 tools/scripts/run_e2e_api_flow.py --require-settlement --settlement-retries 120

5) Run Locust load test

make loadtest-headless

For interactive mode/UI:

make loadtest

Then open http://localhost:8089.

6) Optional reliability drills

make chaos-docker
make game-day-docker
make phase-gate-docker
make live-drill-docker

7) Cleanup

make down-all

For full volume reset:

docker compose -f docker-compose.infra.yml -f docker-compose.observability.yml -f docker-compose.yml down -v