Skip to content

Instantly share code, notes, and snippets.

View vector-10's full-sized avatar
๐Ÿš€
Building Software

Chukwuduzie Blaise vector-10

๐Ÿš€
Building Software
View GitHub Profile
@vector-10
vector-10 / notification-system-spec.md
Last active May 25, 2026 14:50
Technical Specification: Notification System for a Multi-channel, High-Reliability Notification Infrastructure at Scale

Overview

Cowrywise is a wealth management platform, enabling millions of Nigerians to take charge of their personal finances. This is done by providing tools to plan, save and invest online with ease. A system of this nature requires a robust and scalable notification system (SMS, Email, Push) delivering high-priority notifications like OTPs, withdrawal, deposit alerts and lower-priority ones like promotional campaigns,. All this while sorting out through the right channel, respecting user preferences and very importantly ensuring "at-least-once" delivery with idempotency to guarantee no duplicate sends to users.

Requirements

Functional Requirements

  • Multi-Channel Support
    • Emails(SendGrid), SMS(Twilio) and Push(FCM) Notifications
    • Pluggable architecture, Can switch to another provider without changing core business logic
  • Notification Prioritization
  • Handle and Deliver High priority notifications (OTP, 2FA, security alerts) over lower priority notifications (marketing campaings)