The challenge
Our client aimed to manage a complex logistics data project that had outgrown its original scope. The project, which had started with a limited feature set, expanded over three years to handle millions of messages daily, requiring our client to resolve several issues.
Scalability: Our client needed a system that could support new features and a growing codebase without performance degradation.
Build and compilation times: As project components grew, the company’s build tool, sbt, took up to 60 minutes to compile. Also, the tests were slowing down CI/CD.
System performance: To process the data without bottlenecks, the system required high performance. Initially, the use of runtime serialization had slowed the system and caused test timeouts.
Collaboration and code management: As the codebase expanded, managing the project across multiple teams became challenging. Choosing between monorepo and multi-repo solutions was critical to maintaining productivity and quality.
Our client lacked the manpower to maintain the progress of development and meet scaling needs. They turned to VirtusLab, due to our experience with monorepos and improving build times.