A production-grade, AI-driven event system built using Spring Boot, Kafka, Kafka Streams, Gemini AI, and WebSockets.
NotifyX is an intelligent notification system that delivers real-time updates with:
- ⚡ Ultra-low latency (Kafka + WebSockets)
- 🧠 AI-based decision making (Gemini API)
- 🔁 Fault-tolerant processing (Retry + DLQ)
- 📊 Stream-based aggregation (Kafka Streams)
| Layer | Technology |
|---|---|
| Backend | Spring Boot 3 |
| Messaging | Apache Kafka |
| Streaming | Kafka Streams |
| AI Engine | Gemini API |
| Realtime | WebSockets (STOMP + SockJS) |
| Database | PostgreSQL |
| Frontend | HTML + JavaScript |
| Build Tool | Maven |
- Smart priority classification (HIGH / MEDIUM / LOW)
- AI-based retry decision (RETRY / DROP)
- Intelligent event routing
- Kafka event-driven architecture
- Multi-topic routing
- Retry + DLQ mechanism
- PostgreSQL persistence
- Real-time aggregation (window-based)
- Priority-based routing
- High-priority instant delivery
- Live notifications via WebSockets
- AI priority badges
- Sound alerts 🔊
- Auto-expiring notifications
- User filtering
POST /api/events{
"userId": "user123",
"type": "payment",
"message": "Payment failed due to insufficient balance"
}
⚠️ Priority is automatically handled by AI
GET /api/notifications/{userId}/ws
Subscribe:
/topic/notifications
- Kafka + Zookeeper
- PostgreSQL
- Java 17+
mvn spring-boot:runhttp://localhost:8080/index.html
{
"userId": "user1",
"type": "payment",
"message": "Payment failed due to insufficient balance"
}{
"userId": "user1",
"type": "promo",
"message": "Big discount available!"
}- Banking alerts
- Fraud detection
- E-commerce updates
- Monitoring systems
- Social notifications
Akash Adak Backend • DevOps • Distributed Systems
⭐ Star this repo if you like it!
