WorkflowsNotification
Notification Workflow Overview
End-to-end workflow for notification creation, delivery, and user interaction across web and mobile surfaces.
Notification Workflow Overview
This workflow explains how one notification event moves from producer to user inbox with surface isolation.
Surfaces
Supported surfaces:
web_in_appmobile_in_appweb_pushmobile_pushemailsms
Core Flow
User Interaction Rules
- Inbox APIs require
surfacefor list, unread count, read, and mark-all-read. - Read state is isolated per surface.
- Marking read on
web_in_appdoes not changemobile_in_appunless explicitly requested by product logic. - Badge semantics are read-based.
Reconnect Behavior
- Client rejoins room via
notification:joinornotification:sync. - Server replays missed events from event history.
- Client can refetch inbox when a replay gap is detected.
Technical Introduction
A modern full-stack TypeScript monorepo combining React 19, NestJS, TanStack Router, Drizzle ORM, and PostgreSQL - all managed with Turborepo and pnpm workspaces.
Notification Working Principle
Principle-based behavior of surface-scoped notifications, state transitions, fanout, and suppression.