Digital Transformation
Cache Invalidation
Cache Invalidation adalah proses memberi tahu sistem cache bahwa data lama sudah tidak valid sehingga harus diambil ulang dari sumber asli.
TL;DR: Cache Invalidation adalah proses memberi tahu sistem cache bahwa data lama sudah tidak valid sehingga harus diambil ulang dari sumber asli. Ini dianggap salah satu masalah paling sulit di rekayasa perangkat lunak modern. Untuk website bisnis, strategi invalidasi yang salah membuat pengunjung melihat harga lama, stok keliru, atau konten basi.
Apa itu Cache Invalidation?
Cache Invalidation adalah mekanisme yang memastikan data yang disimpan di cache tetap relevan ketika sumber data berubah. Misalnya, ketika harga produk diubah di admin panel, semua cache yang menyimpan halaman produk tersebut harus ditandai tidak valid supaya pengunjung berikutnya mendapatkan harga baru, bukan harga lama.
Saat saya membangun e-commerce Nalesha dengan Next.js dan CDN, kasus paling rumit datang dari katalog parfum yang sering diganti varian. Tanpa strategi invalidasi yang benar, halaman produk bisa menampilkan stok yang sudah habis selama belasan menit setelah update. Solusinya adalah kombinasi tag-based invalidation dan revalidasi terjadwal.
Tiga Strategi Utama
| Strategi | Cara Kerja | Cocok untuk |
|---|---|---|
| Time-based (TTL) | Cache otomatis kadaluarsa setelah durasi tertentu | Konten yang berubah teratur, seperti artikel blog |
| Event-based (purge) | Cache di-purge saat ada event tertentu, misal update produk | E-commerce, dashboard real-time |
| Tag-based | Cache dikelompokkan tag, satu purge bisa menghapus banyak entri | Aplikasi modern dengan banyak relasi data |
Next.js mendukung tag-based invalidation lewat fungsi revalidateTag yang sangat memudahkan kontrol granular. Dokumentasi Vercel tentang caching dan revalidation memberi pola praktis untuk implementasi.
Kenapa Penting untuk Website Bisnis?
Pertama, performa: cache yang tepat memotong waktu respons drastis. Kedua, konsistensi data: invalidasi yang benar memastikan pengunjung selalu melihat data terbaru. Ketiga, biaya: tanpa cache, setiap permintaan harus menghantam database atau API eksternal, biaya operasional bisa membengkak.
Bagi marketer dan developer Indonesia yang membangun website transaksi, kegagalan invalidasi cache sering menjadi penyebab nyata komplain pengguna. Strategi yang saya pakai untuk klien adalah kombinasi TTL pendek pada halaman dinamis dan tag-based purge pada event admin.
Pertanyaan Umum
Apakah cache TTL panjang selalu lebih baik?
Tidak. TTL panjang menghemat resource tetapi meningkatkan risiko data basi. Pilih TTL berdasarkan seberapa sering data berubah.
Apa perbedaan purge dan invalidate?
Purge biasanya menghapus cache secara langsung. Invalidate menandai cache tidak valid sehingga di-refresh saat permintaan berikutnya. Beda implementasi, tujuan sama.
Apakah CDN otomatis menangani invalidation?
Tidak otomatis. Anda perlu memanggil API purge CDN atau memakai tag-based invalidation yang didukung provider seperti Vercel atau Cloudflare.