bf-manage-incidents¶
What this service is¶
bf-manage-incidents is the incident/event intelligence service. It ingests event streams, applies grouping/rule logic, persists incidents, and drives notification workflows.
Code anatomy¶
src/app.py: FastAPI entrypoint and app wiring.src/incidents/*: incident domain logic, including rule-engine modules.src/event_bus/*: event ingestion/consumption and event abstractions.src/notifications/*: formatting, channel dispatch, and notification delivery logic.src/watcher/*: monitoring/watcher workflows.src/maintenance_window/*: suppression/scheduling windows around alerts.src/db/alembic: migrations and persistence boundary.
Architectural characteristics¶
- Event-driven domain service with explicit notification and maintenance-window subdomains.
- Dedicated incidents database (
postgresql-incidents) boundary.
Documentation and tests in-repo¶
- README describes incident grouping intent and flow.
- Tests organized by subdomain (
incident,event_bus,notifications,watcher,maintenance_window).
Internal request lifecycle¶
sequenceDiagram
participant Source as event source
participant Bus as event bus
participant Engine as rule engine
participant Incident as incident module
participant Notify as notification module
participant Db as incidents database
Source->>Bus: emit event
Bus->>Engine: route event for evaluation
Engine->>Incident: create or update incident
Incident->>Db: persist incident state
Incident->>Notify: trigger notification action
Notify-->>Source: downstream notification side effects