Skip to main content

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 a common architecture for this kind of requirement though there are other parts in our real application which I am unable to include and are not that important for the purpose of the article. However, it is a different challenge in a legacy system as we are unable to choose the technical stack we want but to use an existing stack. One of the toughest achievements due to that reason and limited time frame. However a good experience.

Happy learning guys ☺

Comments