# The evolution of Grab's machine learning feature store

[Grab](https://yomu.fyi/company/grab) · Daniel Tai · Jul 24, 2025

## Summary

Grab redesigned its initial machine learning feature store, Amphawa, to address high-dimensional data, complex entity retrieval, and versioning challenges during feature updates. The new architecture adopts a feature-table model where data scientists output Parquet datasets to Amazon S3 using Spark, which are then atomically ingested into Amazon Aurora PostgreSQL via a reverse ETL workflow. To prevent noisy-neighbor contention and optimize infrastructure costs, the platform utilizes Aurora's distributed storage to separate reads from writes. Grab pairs Aurora Serverless on writer nodes to scale up during daily batch ingestion with Provisioned instances on read replicas for steady serving traffic.

## Takeaways

- Ingesting feature tables as atomic collections from S3 Parquet files eliminates the need for ML models to handle breaking changes while old and new data coexist.
- Shadow reading duplicates ongoing live queries to newly ingested tables during a post-ingestion warm-up phase to prevent cold-start latency spikes.
- Using Aurora Serverless for writer nodes allows capacity to scale down when idle between batch ingestions, while Provisioned nodes handle read-heavy serving traffic.

**Tags:** [AWS](https://yomu.fyi/topic/aws), [Data Pipelines](https://yomu.fyi/topic/data-pipelines), [Machine Learning](https://yomu.fyi/topic/machine-learning), [Postgres](https://yomu.fyi/topic/postgres), [Serverless](https://yomu.fyi/topic/serverless)

[Read original post](https://engineering.grab.com/evolution-of-grab-machine-learning-feature-store)
