Design pattern: Scheduled Automated Report
Suppose we have a requirement to send a report via email to Manager periodically, once a week/month etc. Options could be enabling report scheduling in production or using an advance agent to generate pdf/excel and attach it in email etc. Would like to hear how you will approach the design and pros/cons of the various approaches keeping in mind easy administration and scalability e.g
1) Ability to add or remove users easily from the subscription list
2) Ability to change the schedule easily - business decides that these reports should be sent weekly now instead of monthly
3) Stop the reports ( in case of business exception or a data flaw is found in reports and we don't want to send wrong reports to users)
4) Few Reports should be sent to manager even when they have not particularly subscribed the report. This will always get triggered to them.