← Back to architecture

Notifications

cross-cutting · dispatcher · in-app · email · webhook

A cross-cutting notifications layer: one dispatcher in core collects events from every module, splits them across two addressing models and channels, and journals delivery. The module has no screen of its own — the feed and settings are rendered by the surfaces (index below).

Architecture

main event line broadcast branch targeted branch
Harvester Auth Agent Engine Knowledge Store Admin sources raise an
event, don’t send it
Entry dispatcher call in core dispatcher · core Writes the event · dedup · fan-out a notifications row
type · severity · i18n key
Addressing one column target_user_id
splits two models
Broadcast target_user_id IS NULL sync security budget system discovery Targeted target_user_id = X agent account in_app email SAQ webhook in_app email SAQ channels
fan-out by
routes
opt-out
in_app × security / sync — can’t be disabled Admin Panel · feed broadcast + personal Web App · feed personal targeted
API

Workzone Design

Detailed design decisions for the module.


Wireframes Surfaces

The module has no frontend of its own: each surface reads the feed with its own screen — → Web App for the employee, → Admin Panel for the administrator; channel and route settings live on the → notifications screen in Admin Panel.