Sobes.tech
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):

  1. CRM sends notification event to Notification Platform via API.
  2. API Gateway receives the event and forwards it to Event Processor.
  3. Event Processor determines the channel (e.g., email) and selects a template from Template Manager.
  4. The message is formed and passed to Notification Dispatcher.
  5. Notification Dispatcher sends email via Email Service.
  6. Sending status is logged in Logging & Monitoring.
  7. Notification Platform returns status to CRM.

This approach ensures centralized notification management, improves delivery quality, and simplifies system scaling.

Practical task: Unified Notification Platform Context… - sobes.tech