Grab's Integrity Data Platform team rewrote a high-QPS Golang microservice in Rust, achieving 70% infrastructure cost savings while maintaining similar performance. The Counter Service rewrite resulted in 5x resource efficiency improvements, consuming only 20% of the original resources. The team established criteria for selecting rewrite candidates: simple functionality, high traffic volume, and team willingness to learn Rust. Key challenges included adapting to Rust's borrow checker, async programming differences, and lack of internal library support. While Rust didn't provide significant performance improvements over Go, it delivered substantial efficiency gains through better memory management without garbage collection.
Table of contents
AbstractIntroductionBackgroundFinding the right serviceRoad bumpsImpactLearnings and conclusionEvaluating the worth of the rewriteSort: