Designing a Scalable Enterprise Notification Service: Architecture & Best Practices

This article outlines the goals, evolutionary stages, functional and non‑functional requirements, and detailed component design of a unified enterprise notification system that supports multiple channels, high performance, scalability, and seamless integration for modern distributed applications.

Java Backend Technology
Java Backend Technology
Java Backend Technology
Designing a Scalable Enterprise Notification Service: Architecture & Best Practices

Architecture Goals

Build a unified enterprise push service that supports multi‑channel delivery, integrating email, SMS, chat (WeChat/QQ), DingTalk, Enterprise WeChat, and other public social apps, both for in‑app and out‑of‑app notifications.

Push Capability Evolution

1. Modular Stage

Early systems each had their own isolated push modules (chat, SMS, email, WebSocket), leading to fragmented implementations and inconsistent quality.

2. Framework Stage

A unified push framework was introduced as a set of Spring Boot starters (chat, SMS, email, WebSocket) to reduce duplication and centralize configuration.

3. Service Stage

The framework evolved into a full push service addressing high data volume and concurrency, requiring significant hardware and operational investment, thus justifying a dedicated team for maintenance and cost reduction.

Position of the Push Service in Business Systems

Business applications consist of an access layer (API gateway), an aggregation layer, and atomic services that provide reusable capabilities such as comments, file storage, data storage, push service, and authentication.

Push Service Functional Requirements

Send notifications

Prioritize notifications

Deliver based on user preferences

Support single and batch messages

Provide analytics use cases

Generate notification reports

Push Service Non‑Functional Requirements (NFR)

High performance: QPS > 10,000

High availability: 99.99%

Low latency: TP99 < 10 ms

Scalable plug‑in design for adapters and providers

Cross‑platform support (Android/iOS/Web)

Auto‑scaling on private or public clouds (VMware Tanzu, AWS, GCP, Azure)

Push System Design Architecture

Notification Client

Clients call APIs to send single or batch messages to the simple or batch notification services.

Notification Service

Exposes REST APIs, builds messages via the template service, validates them, persists to a database, and provides CRUD and replay capabilities, along with a web dashboard for filtering.

Template Service

Manages templates for OTP, SMS, email, chat, and other push notifications, offering REST APIs and a UI dashboard.

Message Dispatch Service

Scheduling service for immediate or timed delivery (seconds, minutes, hourly, daily, weekly, monthly, yearly, custom).

Priority Queue Service

Handles high, medium, and low priority queues, ensuring urgent messages are sent first.

Outbound Processor

Polls the priority queues, processes messages based on priority, and forwards them to appropriate adapters.

Notification Adapters

QQ, WeChat, in‑app, email, SMS, OTP adapters.

Channel Providers

External SaaS providers such as AWS SNS, MailChimp, etc.

User Selection Service

Selects target users or application modules, integrating with AD/IAM directories.

User Profile Service

Manages user profiles, identifiers, and preferences, supporting unsubscribe and frequency controls.

Analytics Service

Analyzes notification usage, trends, and generates reports from Cassandra and notification databases.

Notification Tracker

Monitors the event queue, capturing metadata like transmission time, status, channel, and type.

Notification Database (MySQL Cluster)

Stores all notification records with a leader‑follower architecture optimized for write‑heavy workloads, ensuring high availability and low latency.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

BackendarchitectureMicroservicesNotification
Java Backend Technology
Written by

Java Backend Technology

Focus on Java-related technologies: SSM, Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading. Occasionally cover DevOps tools like Jenkins, Nexus, Docker, and ELK. Also share technical insights from time to time, committed to Java full-stack development!

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.