A Spring Boot-based microservice that handles multi-channel notifications (Email, SMS) through a Kafka-driven event streaming architecture.
Herald is designed to process notification events from a Kafka stream and deliver them through multiple channels including email (via Mailjet) and SMS (via Twilio). It provides a scalable, event-driven architecture for managing notifications across your system.
- Multi-Channel Notifications: Support for Email and SMS notifications
- Kafka Event Streaming: Asynchronous event processing for high throughput
- Email Provider Integration: Mailjet integration for reliable email delivery
- SMS Provider Integration: Twilio integration for SMS messaging
- OTP Management: One-time password generation and validation
- Redis Caching: Built-in caching layer for improved performance
- Database Migrations: Flyway-based schema management
- Docker Support: Containerized deployment ready
- Framework: Spring Boot 3.x
- Messaging: Apache Kafka
- Cache: Redis
- Email: Mailjet API
- SMS: Twilio API
- Database: PostgreSQL (via migrations)
- Logging: Logstash integration
- Build Tool: Maven
Herald/
├── src/
│ ├── main/
│ │ ├── java/com/notification/herald/
│ │ │ ├── controllers/ # REST endpoints
│ │ │ ├── services/ # Business logic
│ │ │ ├── consumers/ # Kafka consumers
│ │ │ ├── providers/ # Email & SMS providers
│ │ │ ├── dto/ # Data transfer objects
│ │ │ ├── entities/ # JPA entities
│ │ │ ├── configurations/ # App configurations
│ │ │ └── utils/ # Utility classes
│ │ └── resources/
│ │ ├── application.yml # Application configuration
│ │ └── db/migration/ # Database migrations
│ └── test/
├── docker-compose.yaml # Local development setup
├── Dockerfile # Container image definition
├── pom.xml # Maven configuration
└── logstash/ # Log aggregation config
- Java 17+
- Maven 3.8+
- Docker & Docker Compose
- Kafka
- Redis
- PostgreSQL
For issues, questions, or contributions, please refer to the project repository or contact the development team.