Netflix baru-baru ini membagikan detail tentang pembaruan arsitektur Tudum, situs web penggemar mereka, mengganti sistem CQRS dengan penyimpanan objek dalam memori yang disebut RAW Hollow. Meskipun perusahaan mempresentasikan ini sebagai kisah sukses teknis, komunitas rekayasa perangkat lunak merespons dengan kritik luas, mempertanyakan apakah kompleksitas seperti itu dapat dibenarkan untuk apa yang dilihat banyak orang pada dasarnya sebagai situs blog.
Ketidaksesuaian Skala vs Kompleksitas
Aspek paling mencolok dari kontroversi ini berpusat pada ketidakselarasan dramatis antara ukuran masalah dan kompleksitas solusi. Anggota komunitas dengan cepat menunjukkan bahwa seluruh dataset Tudum - termasuk konten tiga tahun - terkompresi hanya menjadi 130MB. Jejak data yang kecil ini membuat banyak orang mempertanyakan mengapa Netflix menerapkan sistem terdistribusi tingkat enterprise termasuk Kafka, Cassandra, dan database dalam memori khusus untuk data yang jumlahnya kurang dari aplikasi smartphone biasa.
Beberapa developer mencatat bahwa prosesor modern memiliki ukuran cache yang mendekati volume data ini, membuat pilihan infrastruktur tampak sangat berlebihan. Konsensus komunitas menunjukkan bahwa solusi tradisional seperti PostgreSQL dengan replika baca, atau bahkan pembuatan situs statis, akan menangani beban kerja ini dengan kompleksitas yang jauh lebih rendah.
Perbandingan Ukuran Dataset Tudum
- Data terkompresi: 130MB (konten selama 3 tahun)
- Ukuran tidak terkompresi: ~520MB
- Konteks: Ukuran cache L3 prosesor kelas atas mendekati level ini
- Pengguna bulanan: 20 juta
Masalah Preview yang Memulai Semuanya
Masalah asli yang ingin dipecahkan Netflix relatif biasa: editor konten harus menunggu puluhan detik untuk melihat pratinjau perubahan mereka karena siklus refresh cache. Namun, komunitas telah mengidentifikasi berbagai solusi yang lebih sederhana yang bisa mengatasi masalah ini tanpa perombakan arsitektur. Saran termasuk membuat lingkungan pratinjau khusus dengan caching yang dinonaktifkan, menerapkan teknik cache-busting menggunakan hash konten, atau sekadar membangun sistem CMS local-first.
Solusi umum adalah membuat hostname DNS khusus yang disebut sesuatu seperti 'preview.www.netflix.com' dan mematikan semua caching ketika pengguna mengakses melalui jalur itu. Editor dan reviewer menggunakan itu, dan itu... selesai. Terpecahkan!
Sentimen ini mencerminkan frustrasi komunitas dengan apa yang mereka anggap sebagai solusi yang direkayasa untuk masalah organisasi yang bisa diselesaikan melalui perubahan operasional yang lebih sederhana.
Komponen Arsitektur yang Diganti
- Sistem Lama: CQRS dengan Kafka + Cassandra + Near Cache
- Sistem Baru: RAW Hollow penyimpanan objek dalam memori
- Masalah yang Diselesaikan: Penundaan refresh cache (puluhan detik)
- Solusi Alternatif yang Disarankan: Lingkungan preview, cache-busting, pembuatan situs statis
Tuduhan Resume-Driven Development
Mungkin kritik paling keras berpusat pada tuduhan resume-driven development - praktik memilih teknologi kompleks untuk meningkatkan prospek karir daripada memecahkan masalah bisnis secara efektif. Anggota komunitas menyarankan bahwa memiliki 20+ insinyur berbakat yang bekerja pada apa yang pada dasarnya adalah blog perusahaan secara alami mengarah pada over-engineering, karena tim berusaha membenarkan keberadaan mereka dan menciptakan proyek yang layak untuk promosi.
Diskusi mengungkap kekhawatiran industri yang lebih luas tentang bagaimana metrik promosi dan ego rekayasa dapat mendorong kompleksitas yang tidak perlu. Beberapa komentator mencatat bahwa posisi menguntungkan Netflix memungkinkan mereka menyerap biaya eksperimen semacam itu, tetapi memperingatkan agar startup tidak meniru pola arsitektur ini tanpa sumber daya serupa atau kebutuhan yang sebenarnya.
Tema Kritik Komunitas
- Over-engineering untuk fungsi blog sederhana
- Tuduhan resume-driven development
- Perilaku architecture astronaut
- Ketidaksesuaian antara skala masalah dan kompleksitas solusi
- Alternatif yang lebih sederhana tersedia dengan mudah
Architecture Astronauts Teknis
Komunitas sangat kritis terhadap apa yang mereka sebut perilaku architecture astronaut - insinyur yang menciptakan sistem kompleks demi kompleksitas daripada nilai bisnis. Kritikus menunjukkan bahwa seluruh situs Tudum kemungkinan bisa dilayani oleh satu database dengan caching tradisional, atau bahkan dibuat sebagai file statis.
Ironinya tidak luput dari komentator bahwa Netflix, perusahaan yang dikenal karena memelopori arsitektur microservices, terus menerapkan solusi skala enterprise untuk masalah yang tidak memerlukan kompleksitas seperti itu. Beberapa mencatat bahwa bahkan forum diskusi ini menangani editing, personalisasi, dan pembaruan real-time tanpa memerlukan CQRS, Kafka, atau database terdistribusi khusus.
Pelajaran untuk Industri
Kontroversi ini menyoroti pertanyaan penting tentang pilihan teknologi yang tepat dalam pengembangan perangkat lunak. Meskipun tim rekayasa Netflix tidak diragukan lagi memiliki keahlian yang signifikan, respons komunitas menunjukkan bahwa kemampuan teknis tidak selalu diterjemahkan ke pendekatan pemecahan masalah yang tepat.
Perdebatan ini berfungsi sebagai pengingat bahwa keputusan rekayasa harus didorong oleh kebutuhan aktual daripada teknologi yang tersedia atau preferensi tim. Untuk sebagian besar organisasi yang menghadapi tantangan manajemen konten serupa, konsensus komunitas menunjuk ke solusi yang jauh lebih sederhana yang akan memberikan hasil lebih baik dengan overhead pemeliharaan yang lebih rendah dan siklus pengembangan yang lebih cepat.
Referensi: Netflix Revamps Tudum's CQRS Architecture with RAW Hollow In-Memory Object Store