Skip to main content


Showing posts from November 5, 2022

Design a scheduled report sender

Greetings! In one of my projects, I got an opportunity to design the architecture for a scheduled report processor and sender. As this is a legacy system, we used existing internal tools, and frameworks hence I'm not able to share the complete architecture but the general idea. This was one of those stressful but fun work. Existing system It can be represented as 3 tier architecture that is common for most of the applications. Design considerations As most of these kinds of architectures have similarities among them, what is important here is the thinking process as we are dealing with an existing system. No impact on the running application Independent development Asynchronous data processing Deploy separately Design I had to tweak the database a little bit but that is not important here. What is important is to expose a separate API for the data loader (ETL). ETL is triggered by a Cron job which eventually inserts into the queue for interested parties to use. Final notes This is