The project
Caren’s car rental service system was ready for a transformation to enhance its performance and maintainability. The existing structure, while functional, presented opportunities for optimization, especially in managing database interactions and improving code clarity
The goal
The main goals were to simplify the codebase, reduce the number of database calls, optimize costs related to database operations, and elevate the system’s performance. Originally, the system handled around 18 million database calls in the off-season and between 30-40 million during peak times. With our improvements, the targeted reductions aim to bring these numbers down to approximately 14.4 million in the off-season and 24-32 million during peak season. We also aimed to reduce the usage of virtual cores from 12 to 10, leading to additional cost savings.
The challenge
Our key challenges included transitioning to the new DbContext approach while maintaining seamless operations. We carefully managed the decoupling process of domain and view models to ensure data consistency and integrity. The implementation of caching strategies was designed to enhance performance without compromising data accuracy, requiring thoughtful planning to avoid any issues with data freshness.
The solution
Our team focused on enhancing the car rental system performance by implementing a streamlined DbContext approach, replacing the existing filter system. To further optimize performance, caching mechanisms were introduced on high-demand endpoints, significantly reducing the number of database calls. We also refined the code by decoupling domain models from view models, resulting in a more organized and maintainable structure. Additionally, tailored data transfer objects (DTOs) were developed for specific operations, ensuring that only relevant data was processed, which contributed to an overall boost in efficiency. Also some of the high-demand endpoints are refactored as async methods in order to increase throughput.
The team
3 Full-stack software engineers
The technologies
-
.NET MVC - Framework 4.8
-
Javascript/JQuery
-
SQL Server (ManagementStudio and Profiler - tools for DB management)
The result
The project delivered a more efficient, maintainable system with a 20% reduction in database calls. The streamlined structure led to cost savings through optimized use of virtual cores and an overall performance boost of approximately 5%. These improvements have enhanced the user experience, resulting in faster response times and a more reliable car rental system.
Curious how small steps can lead to to big results?
Let's explore what we can achieve together.