Nobody Reads Your Notifications. That Is an Architecture Problem.
In early 2024 an operations director at a manufacturing customer told me something I repeated to my own team for months afterward. She said it politely, which somehow made it worse. "Our approval chain is slow." So we measured it. The process itself — validation, routing, the countersign steps — averaged under four minutes of system time. End to end, the average was thirty-one hours. Twenty-seven…
In early 2024, an operations director at a manufacturing customer shared an insight that resonated with her team for months following. She noted that the approval process was slow, with an average of thirty-one hours from start to finish, with twenty-seven of those hours spent waiting for manual intervention. The root cause was the invisible, ineffective notifications that failed to inform the right people at the right time.
The operations director realized that notifications were not a feature, but a critical component of the architecture, lacking identity and governance.
Most platforms handle notifications as side effects, without proper data modeling. A notification is merely a message sent to a channel, forgotten and unaccounted for. This makes it impossible to query, reconcile, retry, or audit notifications. A notification with an ID becomes governable, enabling actions such as listing, filtering, marking as sent or read, and counting. This simple change allows for reconciliation, deduplication, and accountability, which were previously unthinkable.
Notifications should be destinations, not just informational messages. When a notification carries a destination, such as opening a specific URL or record, it becomes more effective. However, destinations can deteriorate silently over time. For instance, renaming a module during a reorganization can lead to broken notifications, causing users to file bugs and ultimately stop using the notification channel altogether.
To address these issues, notifications should be treated as rows in the system, with proper validation and repair mechanisms. Batch processing should recognize the difference between human decisions and automated writes, distinguishing between genuine events and data migrations. Notifications must also consider cross-channel communication, as each channel has different guarantees and expectations.
An in-app inbox, for example, guarantees message presence but not attention, while email guarantees delivery but not human interaction. Chat platforms, on the other hand, can introduce delays as messages arrive during off-hours.
In conclusion, notifications are a crucial aspect of software architecture, requiring attention to identity, governance, and destination management. By giving notifications an identity, platforms can enable reconciliation, deduplication, and accountability, leading to more effective communication and improved user experiences.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.