Caching
menyimpan jawaban dari sebuah pertanyaan yang mahal untuk dijalankan sehingga kamu tidak perlu bertanya lagi. Jika halaman utamamu menjalankan query berat yang sama untuk setiap pengunjung, simpan hasilnya di Redis selama 60 detik dan sajikan secara instan.
Caching adalah optimisasi performa, bukan sumber kebenaran (source of truth). Jebakan klasik bagi pemula adalah lupa akan cache invalidation (pembatalan cache) — salinan yang di-cache menjadi basi (stale) dan pengguna melihat data lama. Aturan praktis: cache hanya ketika kamu sudah mengukur ada bottleneck nyata, dan selalu punya aturan yang jelas kapan nilai yang di-cache akan kedaluwarsa atau diperbarui.
Ada dua strategi yang bersih, dan mencampuradukkan keduanya menyebabkan sebagian besar bug cache. Kedaluwarsa berbasis waktu (TTL — Time To Live, seperti stempel tanggal kedaluwarsa pada nilai yang di-cache) berkata "nilai ini valid selama 60 detik, lalu buang" — sederhana, dan cocok ketika data yang sedikit basi tidak berbahaya (jumlah view, feed halaman utama). Pembatalan berbasis event berkata "hapus nilai yang di-cache begitu data aslinya berubah" — benar, tapi kamu harus ingat melakukannya di setiap jalur penulisan (write path), dan di situlah orang biasanya lengah. Kalau ragu, pilih TTL yang pendek: nilai yang paling basi satu menit adalah bug yang lebih kecil dibanding nilai yang basi selamanya karena kamu lupa satu invalidasi.