Building a Notification System with Strategy-Pattern Dispatcher

Most beginners build a notification feature. I built a notification system. Here's the difference: ❌ Beginner: if type == "email": send_email(); if type == "sms": send_sms() ✅ What I built: A Strategy-pattern dispatcher that doesn't care what channel comes next How it works: → Async event processing via RabbitMQ — fire-and-forget from the caller's side → Thymeleaf HTML email templates with dynamic, typed payloads → Polymorphic subtypes for Payment, Welcome & Password Reset events → DLQ + retry logic so failures never vanish quietly → New notification channels plug in with zero changes to existing code Deployed on AWS — properly: → Runs in a private VPC subnet — no direct internet exposure → Only reachable through RabbitMQ, isolated by design → Managed via IAM roles, assets on S3, compute on EC2 Tech Stack: Java · Spring Boot · RabbitMQ · Docker · AWS EC2 · AWS VPC · IAM · S3 🔗 GitHub: https://lnkd.in/gm8m3J86 This is what switching from game dev to backend engineering looks like in practice — not just learning syntax, but building systems that are async, resilient, and production-aware. If you're hiring backend engineers or just want to connect, let's talk. 🚀 #Java #SpringBoot #Microservices #RabbitMQ #Docker #AWS #BackendDevelopment #SystemDesign #OpenToWork

  • diagram

To view or add a comment, sign in

Explore content categories