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

  1. Event source (e.g., CRM) sends an event to the Notification Platform.
  2. Event Aggregator receives the event.
  3. Router determines the channel and notification type.
  4. Template Manager creates the message based on the template.
  5. Delivery Service sends the notification through the selected channel.
  6. Logging records the event and delivery status.
  7. Monitoring updates metrics and SLA.

Such a solution will centralize notifications, improve delivery quality, and simplify system management.

* No centralized notification history; * Users… - sobes.tech