Report generation can become expensive when large datasets are processed in a single web request.
A better design separates data selection, business-rule calculation, report formatting, and storage. Large reports can be processed using jobs and stored for later download.
Recommended Workflow
- Collect the required source data.
- Apply business rules in a dedicated layer.
- Generate the report asynchronously when necessary.
- Store report metadata and output.
- Provide a reliable download mechanism.
This approach improves reliability and keeps normal web requests responsive.