Notification System

Goal

  • User should be able to receive notification

Functional Requirement

  • Should support multi channel delivery

  • Should support personalization

  • Should respect user preference

  • Should have delivery guarantees

  • Retry on delivery failure

Non Functional Requirement

  • CAP

    • Availablilty and Partition Tolerance

  • Scalability

    • Should scale upto 1 million notification/minute

      • Should have 70(critical)-30(promo) split.

  • Fault Tolerance

    • Retry on failure, to ensure atleast once delivery semantics

  • Durability

    • Notification delivery Logs

    • User preference

  • Latency

    • Urgent Notificaiton : 1-5s

    • Standard Notification: 10 - 15s

    • Promotional Notification: upto 20-30s

  • Security

    • In transit encryption data when sending from Notification Service to App via Providers.

--

  • Regional Compliance

  • Observability

Core Entities

  • Client

  • User Preference

  • Notification

  • Template

API Interface

  • Send Notification //No SQL

  • Template //NoSQL

  • User Preference // Nosql

Last updated