50 lines
1.4 KiB
Markdown
50 lines
1.4 KiB
Markdown
# 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
|
|
|
|
1. Clone the repository
|
|
```
|
|
git clone https://www.alexselimov.com/git/aselimov/NotificationServer.git
|
|
cd NotificationServer
|
|
```
|
|
|
|
2. Build and run the application
|
|
```
|
|
mvn spring-boot:run
|
|
```
|
|
|
|
3. The service will be available at `http://localhost:8080`
|
|
|