unrip/compose.yml
philipp af74c48f29
All checks were successful
deploy / deploy (push) Successful in 21s
Persist armed state across rollout
Proof: Strategy and executor arm state now survives pod restarts through durable control-state files mounted in their service state directories.
Assumptions: The strategy-state PVC can be seeded before the first rollout restart, and both service state directories remain writable on the cluster.
Still fake: Armed-state durability is local to the cluster volumes; there is no cross-cluster or database-backed operator control-state replication.
2026-04-03 20:08:10 +02:00

138 lines
3.2 KiB
YAML

# Local/dev runtime reference for the active implementation turn.
services:
redpanda:
image: docker.redpanda.com/redpandadata/redpanda:v24.3.9
command:
- redpanda
- start
- --overprovisioned
- --smp
- "1"
- --memory
- "1G"
- --reserve-memory
- "0M"
- --node-id
- "0"
- --check=false
- --kafka-addr
- internal://0.0.0.0:9092,external://0.0.0.0:19092
- --advertise-kafka-addr
- internal://redpanda:9092,external://127.0.0.1:19092
- --pandaproxy-addr
- internal://0.0.0.0:8082
- --advertise-pandaproxy-addr
- internal://redpanda:8082
ports:
- "127.0.0.1:19092:19092"
volumes:
- redpanda-data:/var/lib/redpanda/data
healthcheck:
test: ["CMD-SHELL", "rpk cluster health | grep -q 'Healthy: *true'"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
postgres:
image: postgres:16-bookworm
environment:
POSTGRES_DB: unrip
POSTGRES_USER: unrip
POSTGRES_PASSWORD: unrip
ports:
- "127.0.0.1:15432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U unrip -d unrip"]
interval: 10s
timeout: 5s
retries: 10
near-intents-ingest:
build: .
command: ["node", "src/apps/near-intents-ingest.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
market-reference-ingest:
build: .
command: ["node", "src/apps/market-reference-ingest.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
liquidity-manager:
build: .
command: ["node", "src/apps/liquidity-manager.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
volumes:
- liquidity-state:/var/lib/unrip/liquidity-state
inventory-sync:
build: .
command: ["node", "src/apps/inventory-sync.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
history-writer:
build: .
command: ["node", "src/apps/history-writer.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
postgres:
condition: service_healthy
restart: unless-stopped
ops-sentinel:
build: .
command: ["node", "src/apps/ops-sentinel.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
strategy-engine:
build: .
command: ["node", "src/apps/strategy-engine.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
volumes:
- strategy-state:/var/lib/unrip/strategy-state
trade-executor:
build: .
command: ["node", "src/apps/trade-executor.mjs"]
env_file: [.env]
depends_on:
redpanda:
condition: service_healthy
restart: unless-stopped
volumes:
- executor-state:/var/lib/unrip/executor-state
volumes:
redpanda-data:
postgres-data:
strategy-state:
executor-state:
liquidity-state: