← semua materi
Mingguan Review · 25 Oct 2026 · 21:02

Review Mingguan — 19–25 Oktober 2026

Status tercatat: 75 topik di pool · 28 selesai (deep 8/22 · tech 10/28 · light 10/25) · 21 entri minggu ini (7 hari × 3 sesi, tanpa bolong).


📌 Konsep yang Dipelajari

05:00 — Deep (Arsitektur & Fondasi)

Tanggal Topik Inti yang dicatat
19 Okt PACELC CAP cuma soal partisi; PACELC menambah: kalau tidak ada partisi pun tetap ada trade-off latency vs consistency. "CA" bukan pilihan yang bisa dipilih — itu keadaan yang tidak ada.
20 Okt Backpressure & queue semantics At-least-once vs exactly-once: yang kedua bukan gratis, butuh idempotensi di sisi konsumen. Tanpa backpressure, antrean jadi tempat sampah yang tumbuh.
21 Okt Zero-downtime migration Expand–contract: tambah kolom baru → tulis ke dua tempat → backfill → pindah baca → hapus lama. Satu migrasi besar = satu jendela downtime.
22 Okt Multi-tenancy Shared DB / schema-per-tenant / DB-per-tenant: pilihan bukan soal preferensi tapi soal blast radius dan biaya isolasi. Noisy neighbor adalah masalah utama shared DB.
23 Okt GC di produksi Tuning GC = memilih antara pause dan throughput, tidak ada yang gratis. Pause panjang biasanya bukan salah GC, tapi salah alokasi.
24 Okt Amortized analysis Append dynamic array O(1) amortized karena doubling: biaya realloc dibagi rata. Amortized ≠ rata-rata statistik — ini batas worst-case agregat.
25 Okt Hexagonal architecture Port & adapter berguna saat ada lebih dari satu delivery mechanism atau butuh isolasi test. Kalau aplikasinya CRUD satu jalur, ini upacara.

15:00 — Technical

Tanggal Topik Inti yang dicatat
19 Okt EXPLAIN ANALYZE Baca dari dalam ke luar; curigai selisih besar antara rows estimasi vs aktual — itu tanda statistik basi, bukan tanda query salah tulis.
20 Okt Isolation level Anomali yang tetap lolos: write skew di REPEATABLE READ, phantom di SI. Serializable bukan default karena biayanya nyata (abort & retry).
21 Okt Docker layer caching Urutan COPY/RUN menentukan cache hit. Multi-stage build memisahkan toolchain build dari runtime — image kecil, cache stabil.
22 Okt CI/CD & progressive delivery Artifact immutability: build sekali, promote yang sama. Canary/blue-green memindahkan risiko dari "semua user sekaligus" ke "sebagian kecil dulu".
23 Okt CDN & edge caching Cache key adalah kontrak. Purge itu mahal dan lambat; lebih baik desain URL yang bisa di-invalidate daripada mengandalkan purge.
24 Okt Core Web Vitals LCP/INP/CLS: yang diukur adalah pengalaman, bukan ukuran bundle. Bundle besar belum tentu lambat kalau jalur kritisnya kecil.
25 Okt Load testing (k6) Uji sampai patah, bukan sampai lolos. Titik patah biasanya di dependensi bersama (DB pool, koneksi), bukan di app server.

19:00 — Light

Tanggal Topik Inti yang dicatat
19 Okt Velocity menipu Velocity mengukur output tim, bukan nilai. Naikkan dengan memecah tiket — angkanya naik, produknya tidak.
20 Okt Anti-pattern sprint Demo teater, backlog kuburan, retro tanpa aksi: tiga ritual yang menghasilkan dokumen, bukan perubahan.
21 Okt Postmortem blameless Fokus ke kondisi sistem yang memungkinkan kesalahan, bukan ke orang. Tanpa itu, orang menyembunyikan insiden berikutnya.
22 Okt ReDoS Backtracking eksponensial dari nested quantifier (a+)+. Regex aman = hindari ambiguitas, batasi panjang input, pakai mesin tanpa backtracking.
23 Okt Bug timezone & DST Simpan UTC, konversi di tepi. Bug muncul saat "hari ini" dihitung di server, atau saat offset disimpan alih-alih zona.
24 Okt Y2K Tidak meledak karena kerja besar sebelumnya — dua digit tahun diperbaiki berlapis. Pelajaran: bencana yang dicegah tidak terlihat seperti keberhasilan.
25 Okt Langit biru & senja merah Hamburan Rayleigh: intensitas ∝ 1/λ⁴, jadi biru terhambur lebih kuat; senja merah karena jalur cahaya lebih panjang, biru habis tersebar dulu.

🛠️ Keterampilan yang Dilatih

Yang bisa langsung dipakai setelah minggu ini:

  1. Membaca rencana query — bedakan query lambat karena index vs karena estimasi statistik.
  2. Memilih isolation level sadar-anomali — tahu kapan REPEATABLE READ cukup dan kapan harus Serializable + retry.
  3. Migrasi tanpa downtime — pola expand–contract bisa dipakai besok di DB produksi apa pun.
  4. Mendesain ulang Dockerfile — reorder layer, multi-stage, cache stabil.
  5. Menyusun load test yang jujur — cari titik patah, ukur dependensi bersama.
  6. Audit regex di codebase — cari nested quantifier, batasi panjang input.
  7. Audit penanganan waktu — cari datetime.now() tanpa zona, offset tersimpan, perhitungan "hari ini" di server.
  8. Menilai apakah hexagonal layak — pertanyaan "berapa delivery mechanism?" sebagai gerbang.
  9. Menulis postmortem yang tidak defensif — struktur kondisi → kontributor → aksi.
  10. Memisahkan metrik output dari metrik nilai — velocity, ukuran bundle, jumlah tiket.

🕳️ Celah Pengetahuan

Topik yang tercatat selesai tapi belum tuntas — ini penilaian saya dari isi topiknya, bukan dari catatan sesi:

Celah paling besar, dalam satu kalimat: minggu ini penuh tentang cara sistem gagal, tapi belum ada satu pun topik tentang cara melihat sistem yang sedang gagal (observability + profiling).


🔗 Koneksi Antar Bidang

Enam benang yang menyatukan 21 topik:

1. Sumbu latency–consistency. PACELC (deep) ↔ isolation level (tech) ↔ CDN staleness (tech) ↔ multi-tenancy noisy neighbor (deep). Semuanya satu pertanyaan sama: seberapa basi data boleh, dan siapa yang menanggung biayanya? CDN TTL, isolation level, dan replikasi lintas region adalah tiga wajah dari keputusan yang identik.

2. Rantai saturasi. Backpressure (deep) ↔ load testing (tech) ↔ GC pause (deep) ↔ queue semantics (deep). Sistem tidak patah di satu titik — antrean naik, latency naik, timeout naik, retry menambah beban, antrean naik lagi. Load test tanpa memahami backpressure cuma mengukur gejala.

3. Deploy sebagai urutan yang bisa dibatalkan. Zero-downtime migration (deep) ↔ Docker layers (tech) ↔ CI/CD artifact immutability (tech) ↔ hexagonal (deep). Empat topik, satu prinsip: setiap langkah harus aman kalau langkah berikutnya gagal. Expand–contract, multi-stage build, dan port-adapter semuanya tentang membuat perubahan bisa dibalik tanpa mematikan sistem.

4. Kelas bug "asumsi yang dulu benar". ReDoS (light) ↔ timezone/DST (light) ↔ Y2K (light) ↔ isolation anomaly (tech). Semua bug ini lahir dari asumsi yang valid di kondisi awal: input pendek, satu zona waktu, tahun 19xx, tidak ada konkurensi. Bug bukan kesalahan logika — bug adalah asumsi yang kedaluwarsa.

5. Teater pengukuran. Velocity menipu (light) ↔ anti-pattern sprint (light) ↔ postmortem blameless (light) ↔ Core Web Vitals (tech). Angka yang dioptimasi berhenti mengukur apa yang seharusnya diukur. Velocity dipecah tiketnya, LCP dikejar dengan preload, postmortem diisi nama — semua jadi ritual kalau metriknya tidak dijaga.

6. Batas sebagai keputusan, bukan struktur. Hexagonal (deep) ↔ multi-tenancy (deep) ↔ monolith vs microservices (pekan lalu, 18 Okt). Ketiganya menjawab "di mana garis ditarik dan siapa yang menanggung biaya di sisi lain garis". Hexagonal menarik garis di kode, multi-tenancy di data, monolith/micro di deployment.

7. (Silang, non-teknis). Hamburan Rayleigh (light) adalah contoh terbaik cost model: 1/λ⁴ adalah analisis asimptotik yang sama bentuknya dengan amortized analysis — dominasi suku terbesar menjelaskan seluruh perilaku sistem.


🎯 Rekomendasi Minggu Depan

Delapan topik, dipilih untuk menutup celah di atas — bukan acak dari sisa pool:

Prioritas Sesi ID Alasan
1 deep d-observability Metric vs log vs trace + cardinality. Tanpa ini, load testing dan GC tuning minggu ini buta.
2 tech t-profiling Flame graph. Pasangan wajib GC tuning.
3 deep d-circuit-breaker Lanjutan langsung backpressure: timeout budget, bulkhead.
4 tech t-n-plus-one Lanjutan EXPLAIN ANALYZE; pola query yang paling sering jadi biang lambat.
5 deep d-ddd-bounded Menutup arc hexagonal: batas domain, bukan cuma batas adapter.
6 tech t-http2-3 Transport layer yang belum tersentuh, padahal CDN sudah dibahas.
7 light l-utf8 Melanjutkan kelas bug "asumsi encoding" setelah timezone.
8 tech t-terraform-state Pipeline aplikasi sudah (CI/CD), pipeline infra belum.

Cadangan kalau salah satu sudah terpakai: d-saga, d-consistency-models, t-llm-eval.


❓ Satu Pertanyaan Retrospektif

Dari 21 topik minggu ini, berapa yang benar-benar mengubah satu baris kode, satu config, atau satu keputusan di pekerjaanmu — dan kalau jawabannya nol, apakah ini belajar atau cuma konsumsi?

Pertanyaan lanjutannya, kalau mau lebih tidak nyaman: topik mana minggu ini yang kamu tidak bisa jelaskan ulang dalam 60 detik tanpa membuka catatan? Itu daftar sebenarnya yang perlu diulang — bukan yang terlihat selesai di pool.