Middle+
Practical task: Unified Notification Platform Context The company has 3 separate systems that send notifications to users: 1. CRM — sends email and push notifications about orders. 2. Support Portal — sends messages about tickets via Telegram bot. 3. Security System — generates SMS alerts about suspicious logins. Each system implements its logic: * own templates, hardcoded recipients; * no centralized notification history; * users complain about duplicates and delays; * no unified SLA, metrics, and control center. Goal Design a new Notification Platform that: * aggregates events from different 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 scaling and expansion of channels in the future. Candidate's task 1. Define the functional requirements of the system. 2. Describe non-functional requirements (reliability, performance, error handling). 3. Create a context diagram (C4 Level 2). 4. Add a sequence diagram scheme. For example, sending a message from CRM.
sobes.tech AI
Answer from AI
Functional Requirements:
- Receiving events from CRM, Support Portal, and Security System via API or message queue.
- Routing notifications through channels: email, SMS, Telegram, push.
- Centralized management of notification templates with editing capabilities.
- Logging all sent notifications with history and delivery statuses.
- Metrics and SLA monitoring (e.g., p95 ≤ 3 seconds for delivery).
- Scalability and addition of new notification channels.
- User subscription management and channel preferences.
Non-Functional Requirements:
- Reliability: guaranteed delivery of notifications or retries.
- Performance: processing and delivery of notifications within SLA.
- Error handling: error logging, failure notifications, fallback channels.
- Security: authentication of event sources, user data protection.
- Scalability: horizontal scaling of components.
Context Diagram (C4 Level 2):
- External systems: CRM, Support Portal, Security System.
- Notification Platform:
- API Gateway for event reception.
- Event Processor for routing.
- Template Manager for templates.
- Notification Dispatcher for sending through channels.
- Logging & Monitoring.
- User Preferences Service.
Sequence Diagram (sending message from CRM):
- CRM sends notification event to Notification Platform via API.
- API Gateway receives the event and forwards it to Event Processor.
- Event Processor determines the channel (e.g., email) and selects a template from Template Manager.
- The message is formed and passed to Notification Dispatcher.
- Notification Dispatcher sends email via Email Service.
- Sending status is logged in Logging & Monitoring.
- Notification Platform returns status to CRM.
This approach ensures centralized notification management, improves delivery quality, and simplifies system scaling.