ACCEPTED
The "Farmacy Food" system should allow sending notifications to subscribers after they have received the meal, to prompt them to send customer satisfaction feedback.
The system should support ability to send messages via various communications channels, e.g. SMS, push notifications, emails, recorded messages, etc.
- Support for push message, email, and/or SMS notifications to subscribed customers, some immediate and some deferred and future possible channels and integrations
Several communication channels to communicate with customers should be supported.
- Several communication channels should be supported by the notifications service as plugins.
- New media channels addition should be supported as simply as possible by developing new model and implementation of certain interfaces.
- Have the Notifications Sender engine be a microservice that communicates with other microservices dedicated to sending messages down specific channels.
- Make notifications Sender a microkernel service that supports communication capability plugins.
Make notifications Sender a microkernel service that supports communication capability plugins.
Reasons:
- Easy to react to change in plugin models while minimizing changes to the core system.
- Easy to deploy specific models rather than the whole system.
- Easy to test specific model as a component in isolation.
Microkernel.
- Simple to maintain, deploy and add plugins.
- Extensible.
- Should consider switching to microservices if core system starts changign frequently.