Skip to content

nXtCyberNet/notifyy

Repository files navigation

📣 Kafka-Based Notification System

A scalable microservice system using Apache Kafka for email, WhatsApp, and push notifications. Deployed on Kubernetes with Prometheus/Grafana monitoring.

🏗️ Architecture

System Architecture

Producer API (K8s) → Kafka (GCP VM) → Consumers (K8s)
                                    ├── Email
                                    ├── WhatsApp (Twilio)
                                    └── Push (FCM)

⚙️ Tech Stack

  • Kafka (GCP VM), Kubernetes, Flask
  • FCM (Push), Twilio (WhatsApp), SMTP (Email)
  • Prometheus + Grafana (Monitoring)

� Quick Start

Kafka Topics

bin/kafka-topics.sh --create --topic email-topic --bootstrap-server localhost:9092 --partitions 2
bin/kafka-topics.sh --create --topic notification-topic --bootstrap-server localhost:9092 --partitions 2

Deploy

kubectl apply -f k8s/

Send Message

curl -X POST "http://<producer-service>:5000/send-kafka" \
  -H "Content-Type: application/json" \
  -d '{"no": 1, "type": "order", "content": "Order confirmed!", "topic": "notification-topic"}'

� Screenshots

Service Screenshot
Grafana Dashboard Grafana
WhatsApp Messages WhatsApp
FCM Push Notifications FCM
Kubernetes Dashboard K8s
VM Monitoring VM

📁 Structure

├── assets/          # Screenshots
├── email/           # Email consumer
├── fmc/             # FCM push service
├── whatsapp/        # WhatsApp consumer
├── webapp/          # Push notification demo
├── producer.py      # Kafka producer
└── backendapi.py    # Registration API

� Notes

  • Kafka secured within VPC
  • FCM requires HTTPS for production
  • Twilio sandbox for WhatsApp testing
  • Metrics exported to Prometheus

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published