Case study · Backend infrastructure

Notification Pipeline System

Centralised notification infrastructure that receives application events and delivers them through multiple communication providers — with API-key authentication, asynchronous processing, delivery tracking and monitoring built in.

Role Backend & Infrastructure Developer
Stack FastAPI · PostgreSQL · Redis · Celery · Docker
Type Notification infrastructure platform
Architecture Event-driven API + async workers + provider abstraction

Why it exists

Notification logic tends to spread: provider-specific code ends up inside every application that needs to send an email, SMS or WhatsApp message. That makes delivery hard to retry, hard to audit and expensive to change when a provider is swapped. This service pulls all of that into one place.

Solution

Applications publish events to a single platform. The platform resolves the right provider, delivers asynchronously and records what happened — separating API requests, worker processing, persistence and provider integrations into distinct parts of the system.

Key features

  • REST APIs for applications, API keys, events, notifications, templates, providers, monitoring and reporting
  • Provider abstraction supporting email, SMS, SMTP, WhatsApp and Resend
  • API-key authentication, request identification and protected service-to-service routes
  • Notification lifecycle tracking: delivery attempts, delivery logs, retries and provider resolution
  • Templates and event payloads kept separate from provider implementation details

Implementation

  • FastAPI service with SQLAlchemy models and Alembic-managed schema evolution
  • Event-driven asynchronous processing with Redis and Celery, so notification workloads run independently of API requests
  • Docker Compose orchestrating PostgreSQL, Redis, FastAPI, Celery workers, frontend and Nginx services
  • Ubuntu Linux production infrastructure with persistent storage, health checks, reverse proxying and containerised frontend delivery
  • Structured logging, request ID middleware and authentication middleware built into the request pipeline

Observability & operations

  • Prometheus metrics, health endpoints and structured request logging
  • Request ID tracing across API requests and background processing
  • Diagnosed and resolved deployment issues involving Docker networking, service health checks, application startup, configuration and internal/external routing
  • Git-based deployment workflow for synchronising changes and rebuilding containerised services on the production server

Engineering highlights

  • Clean separation between API layer, asynchronous workers, persistence and provider integrations
  • Provider abstraction pattern — a new communication channel can be added without touching core application logic
  • Retry and delivery-log model designed for diagnosing failures rather than hiding them
Back to all projects Contact me