How leoalvarenga404/bridge-flow works
BridgeFlow accepts customer and order events asynchronously, normalizes them, records them for audit, and delivers them to a destination system. Failed deliveries are retried and can be manually reprocessed; the web panel provides event inspection and operational metrics. The README documents the broader queue and destination behavior; sampled source confirms the API, repository, and panel boundaries, but not every worker-to-queue wiring detail.
Main entry points: receive-event.usecase.ts Receive event · api.ts API client · rabbitmq.consumer.ts Queue consumer · process-event.usecase.ts Process event
Components 22
Event intake
- Integration API
api/src/integration/http/integration.controller.ts - Receive event
api/src/integration/application/receive-event.usecase.ts - Canonical model
api/src/integration/domain/canonical.ts - Event repository
api/src/integration/infra/persistence/event.repository.ts
Async delivery
- Queue publisher
api/src/integration/infra/messaging/rabbitmq.publisher.ts - RabbitMQ queues
- Queue consumer
api/src/integration/infra/messaging/rabbitmq.consumer.ts - Process event
api/src/integration/application/process-event.usecase.ts - Message handler
api/src/integration/infra/messaging/logging-message-handler.ts - Retry policy
api/src/integration/domain/retry-policy.ts - Destination repository
api/src/integration/infra/persistence/destination.repository.ts
Audit and recovery
- Audit store
- Events API
api/src/events/http/events.controller.ts - Audit queries
api/src/events/infra/prisma-events.repository.ts - Reprocess event
api/src/events/application/reprocess-event.usecase.ts
Operations panel
- Event views
panel/app/events/page.tsx - Event detail
panel/app/events/[id]/page.tsx - Reprocess action
panel/app/actions.ts - API client
panel/lib/api.ts
Other components
- System A
- System B records
- Operator
Connections 25
- System A → Integration API: submits events
- Integration API → Receive event: calls receive
- Receive event → Canonical model: normalizes payload
- Receive event → Event repository: creates event
- Event repository → Audit store: writes audit
- Receive event → Queue publisher: publishes event
- Queue publisher → RabbitMQ queues: publishes message
- RabbitMQ queues → Queue consumer: delivers message
- Queue consumer → Message handler: dispatches message
- Message handler → Process event: handles event
- Process event → Event repository: updates status
- Process event → Destination repository: loads destination
- Destination repository → System B records: writes records
- Queue consumer → Retry policy: applies retries
- Events API → Audit queries: queries events
- Events API → Reprocess event: calls reprocess
- Audit queries → Audit store: reads and resets
- Reprocess event → Audit queries: loads and resets
- Reprocess event → Queue publisher: republishes event
- Operator → Event views: views events
- Event views → API client: fetches data
- Event detail → API client: fetches detail
- Operator → Reprocess action: requests reprocess
- Reprocess action → API client: calls reprocess API
- API client → Events API: calls API