# How we reduced initialisation time of Product Configuration Management SDK

[Grab](https://yomu.fyi/company/grab) · Ram Dilip Pradhan · Nov 22, 2024

## Summary

GrabX operates as Grab's central platform for product configuration management, where client services fetch configuration data via an eventually consistent SDK. Services handling around 400 MB of configuration data experienced startup cold starts taking approximately four minutes, creating service stress during traffic spikes. The engineering team resolved this bottleneck through a multi-phase optimization of how the SDK retrieves data from AWS S3. First, sequential downloads of common and service-specific datasets were replaced with concurrent fetching. Next, concurrent downloading and memory loading were applied across large configurations within subscribed services, followed by the complete removal of an outdated disk-caching fallback mechanism. Benchmarks across diverse configuration payloads showed an overall initialisation time reduction of up to 90%.

## Takeaways

- Switching the download and memory-loading of common and subscribed service data sets from sequential to concurrent execution reduced GrabX SDK initialisation time by roughly 80%.
- Applying concurrent downloads and memory ingestion to individual large configuration files within a subscribed service trimmed initialisation time by an additional 6%.
- Eliminating redundant disk persistence—which existed only for a fallback mode that risked serving stale data—cut startup duration by approximately 50% relative to the second phase.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [AWS](https://yomu.fyi/topic/aws), [Performance](https://yomu.fyi/topic/performance), [Refactoring](https://yomu.fyi/topic/refactoring)

[Read original post](https://engineering.grab.com/how-we-reduced-grabx-sdk-initialisation-time)
