NotificationServer/README.md

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

  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