Skip to main content

Architecture Overview

PSAPLink is a two-application system. PSAPLink PSAP runs inside each dispatch center's firewall; PSAPLink Cloud is the hosted hub that routes notifications to response companies.

[PSAP Network]                         [Cloud Infrastructure]

CAD System (TriTech, CentralSquare,
NewWorld Aegis, etc.)
|
| XML export files
v
PSAPLink PSAP
(behind PSAP firewall)
|
| signed HMAC event (HTTPS)
| POST /api/v1/core/events/incident
v
PSAPLink Cloud
(hub routing)
|
NotificationService
|
+-------------+-------------+
| | |
email SMS Slack ...
| | |
Company users notified via 11 transport channels
|
Company users ACK
(web dashboard or transport reply)
|
AckIngestionService
|
| ACK routed back |
|<--------------------------+
|
PSAPLink PSAP
Dispatcher sees ACK confirmation

Core Domain Entities

Agency (psap)
├── CfsConfiguration (1..*) → CfsImport → CfsIncident → Incident
├── Incident (1..*)
│ ├── IncidentAgency — which company agencies are on this incident
│ ├── Notification (1 per company user per incident)
│ │ ├── NotificationDelivery (1 per transport preference)
│ │ └── IncidentReply (0..*)
│ └── IncidentCommunication (append-only audit)
├── TransportChannel (1..*)
├── EscalationRule (1..*)
└── NotificationRule (1..*)

Agency (company)
├── User (1..*)
│ └── UserTransportPreference (1..*)
└── CannedMessage (1..*)

Key relationships:

  • Notification = one row per (incident, user) pair
  • NotificationDelivery = one row per (notification, transport preference) pair
  • ACK at the Notification level — when any delivery is ACKed, all deliveries for that notification are marked acknowledged
  • CommandConnection links a PSAPLink PSAP instance to its PSAP agency in Cloud