๐ REVIEW MINGGUAN โ 26 Okt s.d. 1 Nov 2026
Dasar laporan: 21 entri di file state (7 hari ร 3 sesi). Semua topik di bawah TERCATAT. Bagian "koneksi" dan "celah" adalah SIMPULAN saya, bukan catatan eksplisit.
Progress pool: Deep 15/22 ยท Tech 17/28 ยท Light 17/25. Sisa belum dibahas: 7 + 11 + 8 = 26 topik.
1. Konsep yang Dipelajari
05:00 โ Deep (Arsitektur & Fondasi)
| Tanggal | Topik | Inti |
|---|---|---|
| 26 Okt | Event-driven: choreography vs orchestration | Choreography = service reaksi ke event tanpa koordinator; orchestration = satu saga coordinator pegang alur. Event jadi neraka saat: ordering tidak dijamin, tidak ada schema contract, dan konsumen butuh data yang belum tentu ada |
| 27 Okt | REST vs GraphQL vs gRPC | REST untuk resource publik & cache HTTP; gRPC untuk internal low-latency (HTTP/2 streaming, protobuf); GraphQL untuk client yang butuh bentuk data bervariasi. Pilih dari pola beban, bukan hype |
| 28 Okt | Strategi caching | Cache-aside default; write-through untuk konsistensi lebih ketat; write-behind untuk throughput tapi rawan data loss. Stampede = expiry bersamaan โ perlu jitter, single-flight, stale-while-revalidate |
| 29 Okt | Consistency models | Strong, eventual, read-your-writes, monotonic reads. RYW adalah yang paling sering dilanggar di produksi: user baca replica yang belum catch-up setelah write |
| 30 Okt | Observability | Metric untuk agregat murah, log untuk detail per-kejadian, trace untuk causal chain lintas service. Masalah utama = cardinality (label user_id/request_id di metric = biaya meledak) |
| 31 Okt | Load balancing & health check | Round-robin, least-conn, consistent hashing, power-of-two-choices. Health check dangkal (TCP only) = traffic masuk ke app yang DB-nya mati. Perlu readiness โ liveness |
| 1 Nov | Model konkurensi | Thread (preemptive, shared memory + lock), async (cooperative, single-thread event loop), actor (mailbox, isolasi state), CSP (channel, "don't communicate by sharing memory") |
15:00 โ Tech (Bahasa, Framework, AI Engineering)
| Tanggal | Topik | Inti |
|---|---|---|
| 26 Okt | Evaluasi LLM | Benchmark publik mudah tercontaminate; LLM-as-judge murah tapi bias posisi/verbosity; butuh rubric + human spot-check |
| 27 Okt | Model Context Protocol | Standar satu protokol untuk tools/resources/prompts lintas host-model. Menghapus NรM integrasi jadi N+M |
| 28 Okt | Go concurrency | Goroutine murah, channel untuk sinkronisasi, context untuk cancellation. Race bukan cuma soal lock โ soal ownership data |
| 29 Okt | Python async/await | Event loop single-thread; await cuma yield di titik I/O. GIL bikin CPU-bound tetap serial โ butuh multiprocessing |
| 30 Okt | React Server Components | Komponen jalan di server, payload jadi serialized tree bukan bundle JS. Batas client/server = batas baru yang harus disiplin |
| 31 Okt | Laravel container | Service container + provider = DI. Queue worker proses job async; jebakan: job tidak idempotent saat retry |
| 1 Nov | N+1 query | Loop ambil relasi โ 1 + N query. Solusi: eager loading, batch/WHERE IN, dataloader. Deteksi: query log, bukan feeling |
19:00 โ Light (Praktik & Sejarah)
| Tanggal | Topik | Inti |
|---|---|---|
| 26 Okt | Git rebase vs merge | Rebase = histori linear, tapi menulis ulang commit โ jangan di branch yang sudah di-share. Merge = histori jujur, ada merge commit |
| 27 Okt | Conventional commits | Prefix feat/fix/refactor โ changelog & semver otomatis. Nilainya di otomasi, bukan estetika |
| 28 Okt | Code review efektif | Cari: correctness, boundary case, kejelasan maksud. Abaikan: preferensi format (biar linter). Review besar = review buruk |
| 29 Okt | Taksonomi technical debt | Debt yang bayar (percepat learning), debt yang biarkan (kode mati), debt yang wajib dilunasi (di jalur uang) |
| 30 Okt | Agile vs Scrum vs Kanban | Agile = nilai; Scrum = iterasi tetap + peran; Kanban = aliran kontinu + WIP limit. Beda filosofi, bukan cuma ritual |
| 31 Okt | On-call sehat | Alert harus actionable; alert fatigue = satu-satunya metrik yang penting. Runbook = dokumentasi yang dibaca saat panik |
| 1 Nov | HTTP 418 "I'm a teapot" | Dari RFC 2324 (HTCPCP, April Fools 1998). Tetap hidup karena implementasi iseng di server & library |
2. Keterampilan yang Dilatih
Yang bisa langsung dipakai Senin:
- Diagnosa N+1 โ baca ORM query log, ganti loop jadi batch fetch
- Desain cache โ pilih pola + proteksi stampede (jitter/single-flight)
- Baca observability โ bedakan kapan butuh metric vs trace, dan kenapa label high-cardinality itu bom biaya
- Pilih protokol API โ REST/gRPC/GraphQL berdasarkan pola akses, bukan tren
- Konkurensi sadar runtime โ tahu kapan
asyncmenolong (I/O) dan kapan tidak (CPU, GIL) - Konfigurasi LB & health check โ pisahkan readiness dari liveness
- Praktik tim โ commit convention, ukuran PR, alert actionable, runbook minimal
3. Celah Pengetahuan
Celah dari minggu ini (SIMPULAN saya dari daftar tercatat):
- Idempotency belum disentuh โ padahal muncul sebagai jebakan di 3 topik berbeda (event-driven, Laravel queue retry, load balancer retry). Ini lubang paling mahal.
- Saga / kompensasi belum โ event-driven sudah dibahas tanpa jawaban "transaksi lintas service gagal di tengah, lalu apa?"
- Sharding & hot partition belum โ consistency models dibahas tapi belum sampai partisi data.
- Resilience pola belum โ circuit breaker, bulkhead, timeout budget. Load balancing dibahas tanpa pola gagal.
- Profiling belum โ observability tahu ada masalah, profiling tahu di baris mana. Flame graph belum masuk.
- Tool calling design belum โ MCP dibahas sebagai protokol, tapi desain schema tool + error recovery belum.
- Type-level / Rust ownership belum โ model konkurensi dibahas, tapi belum ada bahasa yang memaksa correctness di level compiler.
- Test & load testing belum di minggu ini โ sudah pernah, tapi tidak ada sesi verifikasi beban setelah 7 topik arsitektur baru.
4. Koneksi Antar Bidang
a) Konkurensi: model โ bahasa โ runtime
d-concurrency-models (1 Nov) โ t-go-concurrency (28 Okt) โ t-python-async (29 Okt).
Tiga sesi, satu sumbu. Model actor/CSP menjelaskan kenapa Go nyaman (channel = CSP literal); async Python menjelaskan kenapa model cooperative butuh disiplin (satu await hilang = loop macet). Insight: pilihan konkurensi bukan selera, tapi konsekuensi model.
b) Konsistensi โ load balancing
d-consistency-models (29 Okt) โ d-load-balancing (31 Okt).
Read-your-writes bisa hancur bukan karena database, tapi karena LB mengirim request user yang sama ke replica berbeda. Konsistensi adalah properti end-to-end, bukan properti DB saja.
c) Cache โ N+1 โ biaya
d-cache-strategy (28 Okt) โ t-n-plus-one (1 Nov) โ t-cdn-edge (minggu lalu).
Semua soal "berapa kali kerja diulang". N+1 = duplikasi query dalam satu request. Stampede = duplikasi query lintas request. Cache key salah = duplikasi yang tidak pernah kena hit.
d) Event-driven โ MCP โ idempotency
d-event-driven (26 Okt) โ t-mcp (27 Okt).
Dua-duanya sistem yang memanggil sesuatu yang bisa gagal dan di-retry. Hukum yang sama berlaku: at-least-once delivery + handler tidak idempotent = duplikasi efek. Ini alasan idempotency jadi celah #1.
e) Observability โ on-call โ load balancing
d-observability (30 Okt) โ l-oncall (31 Okt) โ d-load-balancing (31 Okt).
Health check adalah metric; alert adalah query atas metric; alert fatigue adalah cardinality + threshold yang salah. Ketiganya satu pipeline: instrumentasi buruk โ alert buruk โ on-call rusak.
f) API paradigm โ React RSC โ Laravel container
d-api-paradigm (27 Okt) โ t-react-rsc (30 Okt) โ t-laravel-container (31 Okt).
Pertanyaan sama dari tiga sisi: di mana komposisi data terjadi? Client (REST/GraphQL), server component (RSC), atau container/queue (Laravel job).
5. Rekomendasi Minggu Depan
Urut prioritas, semuanya dari pool yang belum dibahas:
d-idempotencyโ Idempotency key & retry-safe API. Tutup celah termahal minggu ini; menyambung event-driven, queue retry, LB retry.d-sagaโ Saga & kompensasi. Jawaban untuk "transaksi lintas service gagal di tengah".d-circuit-breakerโ Circuit breaker, bulkhead, timeout budget. Pasangan wajib untuk load balancing.t-profilingโ Flame graph. Observability menjawab "ada masalah", profiling menjawab "di mana".d-rate-limitโ Token bucket, sliding window, versi terdistribusi. Dekat dengan LB + resilience.t-tool-callingโ Desain schema tool & error recovery. Lanjutan langsung MCP.t-rust-ownershipโ Ownership & borrow checker. Model konkurensi dari sisi compiler.l-estimationโ Kenapa estimasi software selalu salah. Imbangan manajerial setelah 7 topik teknis berat.
Slot cadangan kalau ada waktu: d-sharding (hot partition), l-git-bisect (praktik debugging cepat).
6. Satu Pertanyaan Retrospektif
Dari 21 topik minggu ini, mana satu yang kalau kamu terapkan Senin depan akan mengubah satu keputusan nyata di pekerjaanmu โ dan apa alasan jujur kamu belum menerapkannya?
โ ๏ธ Catatan kejujuran data: File state juga menyimpan id lama di luar pool saat ini (d-cache-hierarchy, d-consistent-hashing, d-backprop, d-pac-learning, d-halting, d-tcp-congestion, d-bayes-derivation, d-information-entropy) โ saya tidak memasukkannya ke rekap minggu ini karena tanggalnya di luar 26 Oktโ1 Nov dan tidak ada di pool aktif. Item "Keterampilan yang Dilatih" adalah turunan dari judul topik tercatat, bukan bukti bahwa latihan praktik benar-benar dilakukan.