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