Files
call-center/docs/runbooks/event-bus-local.md
T

1.7 KiB

Runbook - Event Bus (Track 8, Local)

Goal

Run the first RabbitMQ-backed event bus flow locally and verify:

  • outbox writes happen in business services
  • event-bus-service publishes events
  • audit-service consumes them
  • reporting-service consumes them

Local compose path

Use Docker Compose because it includes RabbitMQ:

cd deployment
docker compose up -d
cd ..
python scripts\migrate_core_db.py

RabbitMQ management UI:

  • http://localhost:15672
  • default local credentials: guest / guest

Required env

The compose profile already sets:

  • EVENT_BUS_ENABLED=1
  • EVENT_BUS_URL=amqp://guest:guest@rabbitmq:5672/
  • EVENT_BUS_CONSUMER_ENABLED=1

For non-compose local runs, export them manually before starting services.

Smoke check

python scripts\event_bus_smoke.py --base-url http://localhost:8080

Expected:

  • gateway and event-bus-service are healthy
  • an interaction is created
  • its outbox event becomes published
  • audit-service processes the event
  • reporting-service processes the event

Inspect outbox

curl http://localhost:8080/proxy/event-bus/bus/outbox -H "X-User: admin" -H "X-Role: admin"

Useful statuses:

  • pending
  • published
  • failed

Retry a failed event

curl -X POST http://localhost:8080/proxy/event-bus/bus/outbox/<event_id>/retry -H "X-User: admin" -H "X-Role: admin"

Acceptance check

python scripts\track8_check.py --base-url http://localhost:8080

Compatibility mode

If you want to disable the bus and keep the platform on pure HTTP-only behavior:

  • set EVENT_BUS_ENABLED=0
  • restart services

The business REST APIs keep working in that mode.