We have a serverless architecture in Azure, where one of our services stores billing records in Azure Cosmos DB. The system is read-heavy, but records older than three months are rarely accessed.
Over the past few years, the database size has significantly grown, leading to increased costs. We need an efficient way to reduce costs while maintaining data availability.
-
Record Size: Each billing record can be as large as 300 KB.
-
Total Records: The database currently holds over 2 million records.
-
Access Latency: When an old record is requested, it should still be served, with a response time in the order of seconds.
-
Simplicity & Ease of Implementation – The solution should be straightforward to deploy and maintain.
-
No Data Loss & No Downtime – The transition should be seamless, without losing any records or requiring2 service downtime.
-
No Changes to API Contracts – The existing read/write APIs for billing records must remain unchanged
Include an architecture diagram illustrating your proposed solution.
Provide pseudocode, commands, or scripts for implementing core logic (such as data archival, retrieval, and cost optimization st rategies).
I've completed the azure engineer assignment.
Please find my GitHub submission here:
https://github.com/RNAGENDRABABU/azure--cost--optimization--symplique
Please let me know if you have any feedback.