*Hi,I would like to contribute to the development of the new notification microservice for Fineract CNThis is my thinking around the implementation of notification microservice for GSoC. I would like get your input on the approach if possible. The Notification Microservice could be divided into the following subsystems.Preferably, refactor the existing codebase to generate the triggers after passing the necessary checks in the backend.Alternatively, A trigger creator can be made within the microservice to avoid tampering with the existing codebase.TriggerGenerator - Monitor Database for new records and generate and eventThe resolver will accept event from the generator and then determine what has to be done. The Resolver then determines the kind of notification required, an email or an SMS I will determine if its an instant notification or need to be scheduled for later release TriggerResolver - Listen for triggers- Determine the kind of notification- Forward instant notification- Aggregate Notification for scheduled releaseThis component will be abstracted to accommodate future changes in message formats. It will create DAO for the various databases accessDAOFactory - clientDAO- loanDAO- etcThe message resolver will gather the content from the database using the DAO to form the message and all relevant address.This component will use the template component to form the message structure. MessageResolver - Gather message content using internal DAO- Gather addressesThis component will receive the message and connect with carrier domains and mailing services to send the notifications.MessageHandler - Send Messages- Authenticate with carrier domains and create mail servlets- Retry sending notification if failed.EmailHandler extends MessageHandler - Prepare Email SMSHandler extends MessageHandler - Prepare SMSThe template will abstract the various message formats and work with the MessageResolver.Template - SMS templates- SMS templates- Email Templates- CC/BCC : StakeholdersI have attached a class diagram to help visualize the components. *
*Best Regards,* *Ebenezer Graham* *BSc (Hons) Computing* [image: EmailSignature.png] Beau Plan Business Park | West Building Pamplemousses | Mauritius <http://www.pactmart.com/> <http://www.pactmart.com/> www.pactmart.com | Freelancing made easy. skype: ebenezer.graham | Phone: +230 5840 9206 GitHub <https://github.com/ebenezergraham> | LinkedIn <https://www.linkedin.com/in/ebenezer-graham/> | Twitter <https://twitter.com/pactmart> | Facebook <https://www.facebook.com/pactmart> | Personal Website / CV <http://ebenezergraham.github.io/> *“Practice isn’t the thing you do once you’re good. It’s the thing you do that makes you good.”* -*Malcolm Gladwell*
