1.4 KiB
1.4 KiB
Notification System
A scalable backend system for managing and delivering various types of notifications using modern technologies.
Overview
This project demonstrates a notification processing pipeline built with Java Spring Boot, Apache Kafka, and MongoDB. It processes notification requests from multiple sources and delivers them through different channels (email, SMS, push notifications).
Tech Stack
- Java 17+: Core programming language
- Spring Boot 3.2.x: Application framework
- Apache Kafka: Message queue for notification processing
- MongoDB: Database for storing notification records
- Maven: Build and dependency management
Features
- REST API for notification submission
- Asynchronous processing with Kafka
- Multiple notification types (Email, SMS, Push)
- Status tracking and delivery confirmation
- Retry mechanisms for failed notifications
- Metrics and monitoring endpoints
Getting Started
Prerequisites
- Java JDK 17 or 21
- Maven (or use the Maven wrapper)
- MongoDB (local installation or Docker)
- Kafka (local installation or Docker)
Running the Application
-
Clone the repository
git clone https://www.alexselimov.com/git/aselimov/NotificationServer.git cd NotificationServer
-
Build and run the application
mvn spring-boot:run
-
The service will be available at
http://localhost:8080