Notifications core library with email, SMS, and push notification service contracts and provider abstraction.
- Overview
- Features
- Requirements
- Installation
- Quick Start
- Configuration
- Documentation
- Contributing
- License
Firefly Framework Notifications provides the core service layer and provider contracts for sending email, SMS, and push notifications. It defines provider interfaces (EmailProvider, SMSProvider, PushProvider) that concrete notification providers implement, along with application services that orchestrate notification delivery.
The module is structured as a multi-module project with a core sub-module containing the service implementations, DTOs, and provider interfaces. The notification services delegate to the appropriate provider implementation, which is supplied by separate provider modules (SendGrid, Resend, Twilio, Firebase).
This architecture allows applications to switch notification providers without changing business logic, as all providers implement the same standardized interfaces.
EmailServicewith template-based email sending and attachmentsSMSServicefor SMS message deliveryPushServicefor push notification deliveryEmailProviderinterface for pluggable email providersSMSProviderinterface for pluggable SMS providersPushProviderinterface for pluggable push notification providers- DTOs for email requests/responses with attachment support
- DTOs for SMS requests/responses
- DTOs for push notification requests/responses
- Email status tracking enum
- Java 21+
- Spring Boot 3.x
- Maven 3.9+
<dependency>
<groupId>org.fireflyframework</groupId>
<artifactId>fireflyframework-notifications</artifactId>
<version>26.02.07</version>
</dependency>import org.fireflyframework.notifications.core.services.email.v1.EmailService;
import org.fireflyframework.notifications.interfaces.dtos.email.v1.EmailRequestDTO;
@Service
public class OrderNotificationService {
private final EmailService emailService;
public Mono<EmailResponseDTO> sendOrderConfirmation(Order order) {
EmailRequestDTO request = EmailRequestDTO.builder()
.to(order.getCustomerEmail())
.subject("Order Confirmation - " + order.getId())
.body("Your order has been confirmed.")
.build();
return emailService.send(request);
}
}Configuration is provided by the specific notification provider module (SendGrid, Resend, Twilio, Firebase).
No additional documentation available for this project.
Contributions are welcome. Please read the CONTRIBUTING.md guide for details on our code of conduct, development process, and how to submit pull requests.
Copyright 2024-2026 Firefly Software Foundation.
Licensed under the Apache License, Version 2.0. See LICENSE for details.