Middle+
* No centralized notification history; * Users complain about duplicates and delays; * No unified SLA, metrics, or control center. Goal Design a new Notification Platform that: * Aggregates events from various sources (CRM, Support, Security); * Routes them by type and channel (email, SMS, Telegram, push); * Ensures uniform templates, logging, and observability; * Supports SLA (p95 ≤ 3 seconds for delivery); * Allows for future scaling and channel expansion. Candidate task 1. Define the functional requirements of the system. 2. Describe the non-functional requirements (reliability, performance, error handling). 3. Create a context diagram (C4 Level 2). 4. Add a sequence diagram, for example, sending a message from a source.
sobes.tech AI
Answer from AI
Functional requirements:
- Reception and aggregation of events from various sources (CRM, Support, Security).
- Classification and routing of notifications by type and channel (email, SMS, Telegram, push).
- Management of notification templates with the ability for uniform editing.
- Logging of all events and actions for audit and debugging.
- Metrics and monitoring (including SLA, e.g., p95 ≤ 3 seconds for delivery).
- Support for scalability and extensibility (adding new channels).
Non-functional requirements:
- Reliability: the system must be fault-tolerant, with mechanisms for resending and backup.
- Performance: processing and delivery of notifications within SLA.
- Error handling: detailed error logs, error notifications, rollback capabilities.
- Security: protection of user data and communication channels.
Context diagram (C4 Level 2):
-
External systems: CRM, Support, Security (event sources).
-
Notification Platform:
- Event Aggregator
- Router (channel routing)
- Template Manager
- Delivery Services (Email, SMS, Telegram, Push)
- Logging & Monitoring
-
Users and administrators (via UI or API for management and monitoring).
Sequence diagram (example of message sending):
- Event source (e.g., CRM) sends an event to the Notification Platform.
- Event Aggregator receives the event.
- Router determines the channel and notification type.
- Template Manager creates the message based on the template.
- Delivery Service sends the notification through the selected channel.
- Logging records the event and delivery status.
- Monitoring updates metrics and SLA.
Such a solution will centralize notifications, improve delivery quality, and simplify system management.