Sitemap
Production Ready

Production Ready: backend engineering that survives production — Spring Boot, data, distributed systems, JVM tuning, and AI in prod, with runnable code and honest tradeoffs.

Design a Notification Service That Scales (and Nails the Interview)

7 min read3 days ago

--

Design a multi-channel notification service with Spring Boot and Kafka. Covers email (JavaMail + Thymeleaf templates), SMS, push notifications, priority queues, retry with dead letter topics, template rendering, and scaling strategies.

The Problem

Press enter or click to view image in full size

“Just send an email” is the trap. The moment you add SMS, push, templates, retries, priorities, and millions of users, that one-line feature becomes a distributed system that can quietly drop a customer’s OTP or double-send a payment alert. Almost every production system needs notifications, and almost every team underestimates them — which is exactly why interviewers love the question.

This is also a classic system design interview question — and one that reveals whether you understand event-driven architecture, the strategy pattern, and failure handling in distributed systems.

In this post, we’ll design and implement a multi-channel notification service using Spring Boot 3.5, Apache Kafka, and JavaMail with Thymeleaf templates.

Requirements

Functional Requirements

--

--

Anupam Sinha
Anupam Sinha

Written by Anupam Sinha

Java · Spring Boot · Microservices · AI. Technical Architect with 17 years of enterprise experience. Writing what I wish I had when I started.

Production Ready
Production Ready

Published in Production Ready

Production Ready: backend engineering that survives production — Spring Boot, data, distributed systems, JVM tuning, and AI in prod, with runnable code and honest tradeoffs.