🚀 Inside Dropbox Dash: Arsitektur Feature Store Hybrid untuk AI Real-Time

Tanggal artikel: 18 Desember 2025

📝 Deskripsi Ringkas

Artikel ini membahas studi kasus teknis tim engineering Dropbox dalam membangun Feature Store (gudang data fitur ML) untuk produk AI mereka, Dash. Mereka menggabungkan solusi open-source dengan infrastruktur internal untuk menangani jutaan dokumen dan memberikan hasil pencarian yang relevan dalam hitungan milidetik.



1. ⚠️ Problem Statement

- Infrastruktur Terpisah: Data Dropbox terpecah antara lingkungan on-premise (latensi rendah) dan cloud (Spark-native), membuat solusi standar pasaran sulit diterapkan.

- Skala "Fan-out" Masif: Satu kueri pencarian memicu pengecekan ribuan file sekaligus (metadata, history, dll), namun tetap harus memenuhi target latensi di bawah 100ms.

- Bottleneck Python: Implementasi awal menggunakan Python terkendala performa saat trafik tinggi akibat isu Global Interpreter Lock (GIL) dan lambatnya JSON parsing.

- Kebutuhan Data Real-time: Fitur harus "segar". Aksi user saat ini harus tercermin dalam sistem ranking dalam hitungan detik/menit.



2. 🛠️ Solusi / Approach

Tim Dropbox menerapkan pendekatan Hybrid Feature Store:



- Feast (Open Source): Digunakan sebagai kerangka kerja utama untuk definisi fitur dan orkestrasi.

- Migrasi ke Go (Golang): Mengganti serving layer dari Python ke Go untuk menangani concurrency tinggi tanpa overhead besar.

- Dynovault (Internal): Penyimpanan internal (kompatibel dengan DynamoDB) yang berlokasi dekat dengan server inferensi untuk akses data super cepat (~20ms).

Strategi Ingestion 3 Jalur:

- Batch: Hanya menulis data yang berubah (incremental).

- Streaming: Untuk sinyal super cepat (aktivitas kolaborasi).

- Direct Writes: Menulis skor pre-komputasi langsung ke online store.



3. 📊 Findings / Results / Impact

- Kecepatan Tinggi: Serving layer berbasis Go menangani ribuan request per detik dengan latensi p95 di kisaran 25–35ms (Go hanya menambah overhead ~5-10ms).

- Freshness Data: Waktu pembaruan data (update cycle) turun drastis dari >1 jam menjadi <5 menit.

- Efisiensi Penyimpanan: Dengan mendeteksi perubahan data, volume penulisan berkurang signifikan (hanya 1-5% fitur berubah tiap 15 menit).



4. ⚙️ How to Implement (General Pattern)

Karena ini adalah desain sistem, berikut cara mengadaptasi pola ini:



- Gunakan framework seperti Feast untuk manajemen fitur.

- Pisahkan offline store (training) dan online store (serving).

- Hindari Python untuk high-throughput serving layer; pertimbangkan bahasa seperti Go atau Rust.

- Implementasikan logika "Change Data Capture" pada pipeline data untuk efisiensi.



5. 💡 Key Takeaways

- Hybrid > Off-the-shelf: Solusi terbaik seringkali adalah gabungan foundation open-source yang dikustomisasi dengan infrastruktur internal.

- Pahami Keterbatasan Bahasa: Python sangat bagus untuk ML, tapi bisa menjadi penghambat fatal untuk real-time serving skala besar.

- Optimasi Akses Data: Memahami pola akses data (sedikit data yang berubah dalam waktu singkat) adalah kunci efisiensi pipeline.



🗣️ Apakah Anda sedang merancang sistem Machine Learning yang membutuhkan respon real-time? Bagian mana yang paling menantang bagi arsitektur Anda saat ini: menjaga data tetap segar (freshness) atau mengejar latensi aplikasi (latency)?

Sumber:
https://dropbox.tech/machine-learning/feature-store-powering-realtime-ai-in-dropbox-dash

🏷️ #SystemDesign #MachineLearning #FeatureStore #Dropbox #Engineering #Golang #RealTimeAI #Feast

Leave a Comment