This project allow to manage emails in a queue. We have these modules:
base-domain: It contains the bussines logic. Only interfaces, without implementation. It's our domain tier.
base-infraestructure: It contains features that depending of libraries about comunicatión like Kafka
adiclub-service: Contains the implementation for managing members. It allows to creating, reading and deleting members.
email-service: It's the responsive to sending emails.
priorite-sale-service: It manage the priority of sending manage. It's posible to configuring how many emils send each minute. Also, it manages the table of sales
public-service: It's the public interface to access our system.
admin-ui: A simple interactive dashboard for managing ours tables.
server-config: It use Spring-Cloud-Config for centralizating the system configuration. This configuration is in another repository: https://github.com/jorgerubira/adidas-config
eureka-server: It's a discoverer of service Rest. When our public-service start, eureka register his IP and Port for external applications
There is a file docker-composer for deploy this modules in a Docker. It's important server-config start before the other modules because this module has the configuratión.
If you want to practice, you can use the admin-ui:
If you make members and one sale, you can start a queue. Every members will receive a email in order of priority.
It's posible to pausing and resuming the emails of sale.
Each sale has a queue so you can make several sales at the same time.