Lewati ke konten utama

C11 · Kamus istilah

Istilah C11 · Desain Sistem dan Arsitektur

Penjelasan singkat untuk istilah, fungsi, dan rumus yang dipakai di course ini. Di dalam modul, istilah bergaris titik bisa diketuk untuk melihat kartu yang sama.

Kembali ke daftar modul C11

224 dari 224 istilah

  • ADRjuga: architecture decision record, rantai penggantian

    Catatan satu keputusan arsitektur: judul, status, konteks, keputusan, dan konsekuensi. Keputusan yang berubah tidak disunting; ADR baru menggantikannya dan yang lama berstatus "digantikan", membentuk rantai yang bisa diperiksa mesin.

    Contoh: ADR-001 → ADR-002 → ADR-003 untuk topik hosting API.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • agregatjuga: aggregate, akar agregat

    Sekelompok objek yang dijaga konsistensinya bersama, dengan satu akar sebagai pintu masuk. Satu transaksi mengubah satu agregat; agregat lain dirujuk dengan id.

    Contoh: attempt beserta jawabannya dikunci bersama dengan SELECT … FOR UPDATE.

    Dipelajari di Modul 09 · Pola arsitektur

  • akuijuga: ack

    Pemberitahuan pekerja ke broker bahwa pesan selesai diproses, sehingga broker menghapusnya. Akui yang benar dilakukan sesudah efeknya tersimpan.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • algoritma Beladyjuga: MIN, kebijakan optimal

    Kebijakan pengusiran optimal yang membuang kunci yang paling lama lagi baru akan dipakai. Butuh mengetahui masa depan, jadi dipakai sebagai batas atas, bukan di produksi.

    Contoh: pada jejak kontrak kapasitas 100, Belady mencapai 0,7069.

    Dipelajari di Modul 03 · Caching

  • algoritma Tarjanjuga: Tarjan, Kosaraju

    Algoritma yang menemukan semua komponen terhubung kuat dengan satu DFS dalam O(V + E), memakai indeks (urutan kunjungan) dan rendah (indeks terkecil yang terjangkau). Kosaraju memakai dua DFS dengan hasil yang sama.

    Contoh: simpul dengan rendah == indeks adalah akar sebuah komponen.

    Dipelajari di Modul 09 · Pola arsitektur

  • algoritme Cristianjuga: Cristian

    Cara mengukur selisih jam perangkat terhadap server: waktu server dianggap bersesuaian dengan titik tengah perjalanan bolak-balik, dan galatnya paling banyak separuh waktu bolak-balik.

    Contoh: kirim 2.000 ms, terima 2.400 ms, server 1.000 ms memberi selisih +1.200 ms ± 200 ms.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • analisis sensitivitasjuga: diagram tornado

    Mengubah setiap asumsi ke bawah dan ke atas satu per satu, lalu mengurutkan menurut rentang keluarannya, untuk mengetahui asumsi mana yang bila salah mengubah kesimpulan. Dihitung dua arah karena fungsi biaya bisa patah.

    Contoh: jumlah Try Out per bulan dan egress per attempt di puncak tornado biaya.

    Dipelajari di Modul 16 · Proyek akhir: Tryout Nusantara

  • anggaran coba ulangjuga: retry throttling

    Pembatas coba ulang ala gRPC: token berkurang 1 setiap gagal, bertambah sedikit setiap sukses, dan coba ulang hanya diizinkan selama token di atas separuh maksimum. Saat padam total, coba ulang berhenti sendiri.

    Contoh: 1.000 panggilan saat padam: tanpa anggaran 3.000 percobaan, dengan anggaran 1.003.

    Dipelajari di Modul 08 · Keandalan

  • anggaran galatjuga: error budget

    Jumlah kegagalan yang diizinkan sebuah SLO: total permintaan × (1 − SLO), dibulatkan ke bawah. Selama anggaran tersisa, tim boleh merilis fitur; bila habis, prioritas pindah ke keandalan.

    Contoh: SLO 99,9% atas 5.080.291 autosave memberi anggaran 5.080 kegagalan per Try Out.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • anticorruption layerjuga: ACL

    Lapisan yang menerjemahkan bahasa sistem luar ke model domain sendiri, sehingga istilah dan kekacauan sistem luar berhenti di satu tempat yang diuji.

    Contoh: status settlement atau capture dari payment gateway diterjemahkan menjadi status order paid.

    Dipelajari di Modul 09 · Pola arsitektur

  • antrean fluida

    Model antrean kasar yang memperlakukan kerja sebagai air: sisa = max(0, sisa + kerja − kapasitas) setiap detik. Tunda terlama kira-kira sisa terbesar dibagi kapasitas.

    Contoh: kerja 30, 30, 0, 10, 0 pada kapasitas 20 memberi sisa terbesar 20, tunda 1 detik.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • antrean pesanjuga: message queue, broker

    Sistem tempat produsen menitipkan tugas dan pekerja mengambilnya; pesan dihapus setelah diakui. Berbeda dengan log berpartisi (misalnya Kafka) yang menyimpan semua peristiwa dan bisa dibaca ulang setiap grup konsumen.

    Contoh: tugas "nilai attempt 42" cocok untuk antrean pesan; aliran "jawaban disimpan" cocok untuk log.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • arsitektur heksagonaljuga: port dan adapter, port, adapter

    Pola Cockburn (2005): inti aplikasi mendefinisikan port (antarmuka yang ia butuhkan), dan dunia luar menyediakan adapter yang memenuhinya. Arah dependensi selalu ke dalam.

    Contoh: port Penyiar dengan adapter tiruan untuk tes dan adapter layanan realtime untuk produksi.

    Dipelajari di Modul 09 · Pola arsitektur

  • asimetri biaya

    Perbandingan biaya yang ditanggung origin dengan biaya yang dibayar pengirim untuk satu permintaan. Endpoint publik yang asimetris dilindungi dengan memindahkan kerjanya ke cache atau antrean, bukan dengan pembatas yang makin ketat.

    Contoh: respons katalog 2,8 KB tetapi 338 KB egress basis data, asimetri ±121 kali.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • at-least-oncejuga: at-most-once, setidaknya sekali

    Semantik pengiriman: efek dulu lalu akui, sehingga pekerja yang mati di tengah membuat pesan dikirim ulang dan efeknya bisa ganda. At-most-once (akui dulu) kebalikannya: tidak pernah ganda, tetapi pesan bisa hilang.

    Contoh: dari 10.000 pesan dengan 1% pekerja mati, akui dulu kehilangan 104 pesan.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • backoff eksponensial

    Jeda sebelum coba ulang yang membesar dua kali lipat setiap kegagalan, dengan pembatas atas. Tanpa jitter, klien yang gagal bersamaan mencoba ulang bersamaan lagi.

    Dipelajari di Modul 08 · Keandalan

  • backpressure

    Sinyal "terlalu penuh" yang merambat ke hulu agar produsen memperlambat: antrean berbatas yang menolak dengan jelas, 429/503 dengan Retry-After, atau ruang tunggu.

    Contoh: antrean berbatas 2.000 menjaga tunggu 2 detik dan menolak 10.000 pesan, alih-alih tunggu 12 detik dan terus tumbuh.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • badai sambung ulangjuga: reconnection storm

    Semua klien koneksi panjang mencoba menyambung ulang pada detik yang sama sesudah server dimulai ulang. Obatnya jitter dengan jendela awal minimal n/kapasitas.

    Contoh: 50.000 klien, kapasitas 2.500 per detik, jendela 25 detik: 0 penolakan.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • batas kepercayaanjuga: trust boundary, zona kepercayaan

    Garis di diagram aliran data tempat data berpindah antara dua pihak yang tingkat kepercayaannya berbeda. Setiap kali data melintasinya, penerima memeriksa ulang siapa pengirimnya, apakah datanya utuh, dan apakah pengirim berhak.

    Contoh: unduhan gambar soal dari peramban langsung ke Storage melintasi batas internet ke data tanpa lewat API.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • batas waktu berlapisjuga: tenggat yang diwariskan, deadline propagation

    Aturan bahwa batas waktu lapisan dalam lebih pendek dari lapisan luar yang menunggunya, sebaiknya dengan sisa tenggat yang diteruskan ke dalam.

    Contoh: proxy 5 detik, antre pool 10 detik, Storage 15 detik adalah urutan terbalik.

    Dipelajari di Modul 08 · Keandalan

  • batas waktu tak terlihatjuga: visibility timeout

    Lama pesan yang sudah diambil disembunyikan dari pekerja lain. Bila tidak diakui sebelum batas itu habis, pesan muncul lagi. Terlalu pendek membuat ganda; terlalu panjang membuat pemulihan lambat.

    Contoh: SQS memakai bawaan 30 detik, maksimum 12 jam.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • BFFjuga: backend for frontend, API gateway

    API gateway adalah satu pintu di depan banyak layanan (autentikasi, pembatas laju, batas waktu, perutean); BFF adalah varian yang dibuat khusus untuk satu klien, misalnya aplikasi web.

    Dipelajari di Modul 07 · Desain API

  • biaya per unitjuga: unit economics

    Biaya dibagi satuan bisnis, misalnya per 1.000 peserta atau per pelanggan per bulan, sehingga bisa dibandingkan dengan harga jual dan dipantau saat skala berubah.

    Contoh: $0,362 per 1.000 peserta, turun ke $0,299 dengan cache isi paket.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • Bloom filterjuga: saringan Bloom, positif palsu, negatif palsu

    Larik m bit dengan k fungsi hash. "Pasti tidak ada" bila ada bit 0; "mungkin ada" bila semua 1. Tanpa negatif palsu, dengan positif palsu ≈ (1 − e^(−kn/m))^k.

    Contoh: 2,4 KB menolak 99% kode undangan tebakan sebelum menyentuh basis data.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • bounded contextjuga: konteks terbatas

    Batas tempat satu model domain dan bahasanya berlaku konsisten (Evans 2003). Kata yang sama boleh bermakna lain di konteks lain, asalkan batasnya jelas.

    Contoh: "peserta" di konteks Peringkat berarti attempt final; di Toko yang ada "pembeli".

    Dipelajari di Modul 09 · Pola arsitektur

  • cache-asidejuga: lazy loading, write-through, write-back

    Pola cache di mana aplikasi memeriksa cache, memuat dari basis data bila meleset lalu mengisi cache, dan menghapus entri sesudah menulis. Write-through menulis cache dan basis data sekaligus; write-back menulis basis data belakangan.

    Dipelajari di Modul 03 · Caching

  • CAPjuga: teorema CAP

    Teorema Gilbert dan Lynch (2002): saat jaringan terpartisi, layanan tidak bisa sekaligus linearizable dan menjawab setiap permintaan. Pilihannya hanya menolak (CP) atau menjawab dengan data yang mungkin basi (AP), dan pilihan itu dibuat per operasi.

    Contoh: keputusan "autosave diterima atau tidak" memilih CP; papan peringkat memilih AP.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • CD3juga: WSJF, aturan Smith, biaya tunda

    Urutan pengerjaan menurut biaya tunda dibagi durasi, menurun. Aturan Smith (1956) membuktikan urutan ini meminimalkan total kerugian tunda Σ wⱼCⱼ dengan argumen tukar.

    Contoh: cache katalog (31,3 / 0,5) dikerjakan sebelum cache isi paket (73,9 / 2).

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • CDCjuga: change data capture

    Membaca log transaksi basis data (misalnya WAL PostgreSQL) untuk menerbitkan perubahan sebagai peristiwa, alih-alih membaca tabel outbox.

    Contoh: Debezium.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • CDNjuga: cache tepi, content delivery network

    Jaringan server di banyak lokasi yang menyimpan salinan respons publik dekat pengguna. Mengikuti kepala Cache-Control dari asal; respons pribadi ditandai private.

    Dipelajari di Modul 03 · Caching

  • CincinHash

    Kelas kontrak proyek untuk consistent hashing dengan cari, tambah, dan hapus. Titik ke-i simpul s berada di hash SHA-256 dari f"{s}#{i}".

    Dipelajari di Modul 04 · Basis data dalam skala

  • cold startjuga: boot dingin, instans dingin

    Waktu menyiapkan instans baru sebelum permintaan pertama: VM atau container, runtime, impor modul, koneksi basis data. Untuk trafik Poisson berlaju λ dan batas menganggur T, peluangnya ≈ e^(−λT).

    Contoh: satu permintaan per 5 menit dengan T = 5 menit: ±37% dingin.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • compare_digestjuga: hmac.compare_digest

    Fungsi Python yang membandingkan dua tanda tangan dalam waktu yang tidak bergantung pada posisi byte pertama yang berbeda, sehingga tanda tidak bisa ditebak dari waktu respons.

    Dipelajari di Modul 07 · Desain API

  • connection poolerjuga: pooler, PgBouncer, mode transaksi

    Perantara yang menerima banyak koneksi murah dari aplikasi dan memakai sedikit koneksi sungguhan ke Postgres. Mode transaksi paling hemat, tetapi mematikan fitur sesi seperti prepared statement, SET, dan advisory lock sesi.

    Dipelajari di Modul 04 · Basis data dalam skala

  • consistent hashingjuga: cincin hash

    Cara memetakan kunci ke simpul lewat titik-titik di cincin: kunci dimiliki titik pertama searah jarum jam. Menambah satu simpul ke n hanya memindahkan ±1/(n + 1) kunci, sedangkan hash % n memindahkan ±n/(n + 1).

    Dipelajari di Modul 04 · Basis data dalam skala

  • context map

    Peta hubungan antar-bounded context: siapa hulu, siapa hilir, dan bagaimana model diterjemahkan (pelanggan–pemasok, anticorruption layer, konformis).

    Contoh: Ujian (hilir) memakai paket dari Katalog (hulu) lewat API publiknya, bukan membaca tabelnya.

    Dipelajari di Modul 09 · Pola arsitektur

  • Count-Min Sketchjuga: Count-Min

    Tabel d × w pencacah dengan d hash. Taksiran frekuensi = minimum d pencacah, tidak pernah di bawah nilai sebenarnya; galat ≤ ε·N dengan peluang ≥ 1 − δ untuk w = ⌈e/ε⌉, d = ⌈ln(1/δ)⌉.

    Contoh: w = 272, d = 5 memberi 1.360 pencacah.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • CQRSjuga: Command Query Responsibility Segregation, model baca, model tulis

    Pemisahan model yang menerima perubahan (model tulis) dari model yang melayani bacaan (model baca). Harganya lag proyeksi yang harus diukur dan dinyatakan.

    Contoh: papan peringkat dibangun dari kejadian attempt_dikumpulkan.

    Dipelajari di Modul 09 · Pola arsitektur

  • CRDTjuga: conflict-free replicated data type, strong eventual consistency

    Struktur data yang salinannya bisa digabung tanpa koordinasi karena operasi gabungnya komutatif, asosiatif, dan idempoten. Replika yang menerima pembaruan yang sama sampai ke keadaan yang sama, dalam urutan apa pun.

    Contoh: G-Counter, PN-Counter, OR-Set.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • DDoSjuga: lapisan 7, distributed denial of service

    Banjir lalu lintas dari banyak sumber untuk membuat layanan tak tersedia. Lapisan 3/4 membanjiri jaringan dan dilawan kapasitas anycast penyedia; lapisan 7 berupa permintaan HTTP yang tampak sah dan dilawan cache, aturan di edge, pembatas per akun, dan antrean.

    Contoh: ribuan IP memanggil katalog publik yang mahal di origin.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • degradasi bertahapjuga: graceful degradation

    Sistem yang mengecil dengan anggun saat sebagian bermasalah: fitur digolongkan wajib, bisa ditunda, atau bisa basi sebelum insiden, dan jalur cadangannya diuji.

    Contoh: soal dikirim dengan penanda "gambar menyusul" saat Storage bermasalah.

    Dipelajari di Modul 08 · Keandalan

  • DLQjuga: dead-letter queue, antrean surat mati, redrive

    Antrean terpisah untuk pesan yang sudah gagal diterima lebih dari ambang tertentu, agar diperiksa manusia. DLQ dipantau sebagai alarm, dan pesannya bisa dikirim ulang (redrive) setelah penyebabnya diperbaiki.

    Contoh: maxReceiveCount 5 di SQS.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • dokumen desainjuga: design doc

    Dokumen yang menjawab pertanyaan peninjau sebelum pembangunan: kebutuhan, estimasi, desain, keandalan, keamanan, biaya, alternatif yang ditolak, dan risiko. Di course ini semua angkanya dibangkitkan dokumen_desain() beserta sumbernya.

    Contoh: {"nilai": 72, "sumber": "kode:server_dibutuhkan"}.

    Dipelajari di Modul 16 · Proyek akhir: Tryout Nusantara

  • double hashing

    Menurunkan k posisi hash dari dua hash saja: gᵢ(x) = h₁(x) + i·h₂(x) mod m, tanpa menaikkan positif palsu secara asimtotik (Kirsch dan Mitzenmacher 2006).

    Contoh: h₁ dan h₂ diambil dari byte 0–8 dan 8–16 digest SHA-256 yang sama.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • drainingjuga: connection draining

    Langkah sebelum mematikan mesin: berhenti menerima permintaan baru, menyelesaikan yang sedang berjalan, baru mati. Lamanya diperkirakan dengan hukum Little.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • dua pilihan acakjuga: power of two choices, dua_pilihan

    Cara memilih server dengan mengambil dua server acak lalu memilih yang lebih sepi. Hampir sebaik melihat semua server, dan tetap baik walau informasi bebannya agak basi.

    Contoh: pada utilisasi 90%, lama di sistem turun dari 10 menjadi ±2,61 kali waktu layanan.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • dual writejuga: tulis ganda

    Menulis ke dua sistem berbeda (basis data lalu antrean) tanpa transaksi yang mencakup keduanya. Proses yang mati di antaranya membuat peristiwa hilang atau peristiwa palsu.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • edgejuga: PoP, titik kehadiran

    Menjalankan kode di ratusan titik kehadiran (PoP) dekat pengguna. Cocok untuk yang bisa dijawab tanpa basis data: aset, halaman ter-cache, pemeriksaan token.

    Contoh: Worker di PoP Jakarta yang memanggil API di Sydney membayar perjalanan itu di setiap pemanggilan.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • efek kawananjuga: herd effect

    Banyak keputusan yang dibuat dari informasi basi yang sama sehingga semuanya menuju tempat yang sama. "Kirim ke server paling sepi" dengan foto beban 100 ms menumpuk semua kedatangan di satu server.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • efek tepat sekalijuga: exactly-once

    Pengiriman tepat sekali tidak bisa dijamin lewat jaringan; yang bisa dijamin adalah efeknya: kirim at-least-once, lalu buat efeknya idempoten.

    Contoh: pengiriman ulang dengan kunci idempoten yang sama tidak membuat nilai kedua.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • egressjuga: data keluar

    Data yang keluar dari layanan atau penyedia, sering ditagih per GB di atas kuota. Untuk aplikasi yang banyak membaca data yang sama, egress basis data bisa menjadi baris biaya terbesar.

    Contoh: 1,95 MB per attempt × 50.000 peserta = 97,5 GB per Try Out.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • ember tokenjuga: token bucket

    Pembatas laju dengan token yang bertambah r per detik sampai kapasitas b; setiap permintaan yang lolos memakai satu. Dalam selang T mana pun, yang lolos paling banyak b + r·T.

    Contoh: b = 10, r = 2 per detik meloloskan 10 sekaligus lalu rata-rata 2 per detik.

    Dipelajari di Modul 07 · Desain API

  • erlangjuga: beban yang ditawarkan

    Satuan beban: satu erlang adalah satu sumber daya yang sibuk penuh. Beban yang ditawarkan a = laju × waktu layanan; sistem stabil hanya bila a lebih kecil dari jumlah server.

    Contoh: 2,5 mulai per detik × 1,7 detik tahan = 4,25 erlang untuk pool 3 koneksi.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • Erlang Cjuga: M/M/c, Erlang B

    Rumus peluang pelanggan harus menunggu di antrean M/M/c: kedatangan Poisson, waktu layanan eksponensial, c server, satu antrean bersama. Dihitung stabil lewat rekursi Erlang B; rata-rata tunggunya C × s / (c − a).

    Contoh: a = 8 dan 10 server memberi C = 0,409 dan rata-rata tunggu 0,205 waktu layanan.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • estimasi kasarjuga: back-of-the-envelope, pertanyaan Fermi

    Hitungan beberapa baris yang memberi orde besaran (puluhan, ribuan, atau jutaan per detik) untuk menyaring desain yang mustahil sebelum menulis kode. Satuan dan asumsi ditulis, dan pembulatan hanya saat mencetak.

    Contoh: 2.000 pengguna × 120 permintaan per jam / 3.600 = 66,7 permintaan per detik.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • event sourcingjuga: lipatan kejadian

    Menyimpan semua kejadian secara berurutan dan menganggap keadaan sebagai hasil turunan: lipatan fungsi terapkan_event yang murni dan idempoten atas log.

    Contoh: keadaan attempt pukul 19.47.12 didapat dengan memutar ulang log sampai titik itu.

    Dipelajari di Modul 09 · Pola arsitektur

  • failover

    Pengalihan peran leader ke replika saat leader mati. Dengan replikasi asinkron, tulisan yang belum sampai ke replika ikut hilang.

    Dipelajari di Modul 04 · Basis data dalam skala

  • faktor puncak

    Perbandingan beban puncak dengan beban rata-rata, tidak mungkin di bawah 1. Nilainya bergantung pada endpoint dan resolusi waktu pengukuran, jadi dihitung dari data, bukan ditebak "2–3 kali".

    Contoh: autosave 1,7 kali rata-ratanya, tetapi mulai 1.194,8 kali pada detik 19.00.00.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • fan-out on writejuga: fan-out on read, dorong, tarik

    Dorong: saat akun memposting, salin ke kotak masuk setiap pengikut (baca murah, tulis mahal). Tarik (fan-out on read): tulis sekali, gabungkan saat membaca. Hibrida memakai tarik untuk akun berpengikut sangat banyak.

    Contoh: satu posting panitia = 50.000 salinan bila didorong.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • fencing tokenjuga: token pagar

    Nomor yang naik setiap kali kunci atau peran berpindah tangan, diperiksa penyimpanan di setiap tulisan. Proses lama yang terjeda dan bangun terlambat ditolak karena nomornya lebih kecil.

    Contoh: term Raft dan revisi autosave bekerja seperti fencing token.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • FinOps

    Praktik membuat biaya cloud terlihat per fitur atau pelanggan (tag sumber daya, anggaran, peringatan) dan membeli komitmen pemakaian hanya untuk beban dasar yang stabil.

    Contoh: lonjakan 19.00.00 tetap per pemakaian, bukan dikomitmenkan.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • fitness function

    Pemeriksaan otomatis atas sifat arsitektur yang dijalankan di CI, sehingga batas tidak terkikis diam-diam oleh satu perubahan.

    Contoh: CI gagal bila ada siklus impor baru atau impor ke submodul yang tidak publik.

    Dipelajari di Modul 09 · Pola arsitektur

  • flapping

    Status yang berganti bolak-balik karena gangguan singkat, misalnya peserta "keluar lalu masuk" karena satu-dua detak hilang. Diredam dengan batas waktu yang cukup dan siaran selisih per interval.

    Contoh: batas waktu 25 detik dengan detak 20 detik memicu ±700 ribu kabar keluar palsu per malam.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • full jitterjuga: equal jitter, decorrelated jitter

    Jeda coba ulang yang diambil acak seragam antara 0 dan dasar × 2ⁱ. Memecah sinkronisasi klien yang gagal bersamaan, sehingga kerja dan waktu sampai semua selesai turun drastis.

    Contoh: 100 klien berebut: tanpa jitter semuanya menyerah; full jitter selesai dengan ±980 percobaan.

    Dipelajari di Modul 08 · Keandalan

  • G-Counterjuga: PN-Counter

    CRDT penghitung yang hanya naik: setiap replika menaikkan penghitungnya sendiri, gabung mengambil maksimum per elemen, nilainya jumlah semua elemen. PN-Counter memakai dua G-Counter untuk naik dan turun.

    Contoh: {"jkt": 31000}, {"sby": 12500}, {"mks": 6500} selalu bergabung menjadi 50.000, walau digabung dua kali.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • gallopingjuga: pencarian eksponensial

    Irisan daftar yang panjangnya timpang: setiap anggota daftar pendek dicari di daftar panjang dengan loncatan berlipat lalu pencarian biner, O(log jarak).

    Contoh: 4 token langka di sejuta dokumen ±62 langkah, lawan sejuta dengan dua penunjuk.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • GB-detik

    Satuan tagihan durasi: memori (GB) × waktu jalan (detik). Waktu jalan termasuk menunggu basis data, jadi bisa beberapa kali lipat CPU.

    Contoh: 1 juta permintaan × 0,2 detik × 0,5 GB = 100.000 GB-detik.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • GCRAjuga: generic cell rate algorithm, TAT

    Ember token yang hanya menyimpan satu angka, TAT (theoretical arrival time). Keputusannya identik dengan ember token, jadi cocok untuk penyimpanan bersama dengan satu operasi atomik.

    Dipelajari di Modul 07 · Desain API

  • geohash

    Kode string untuk lokasi: dunia dibagi dua berulang kali, bergantian bujur dan lintang, setiap 5 bit menjadi satu karakter base32. Awalan yang sama berarti sel yang sama.

    Contoh: Monas (−6,1754; 106,8272) → qqguygv1; presisi 6 ±1,2 km di khatulistiwa.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • granularitas penskalaan

    Panjang blok waktu yang kapasitasnya bisa diubah. Setiap blok membayar kerja detik tersibuknya, jadi makin kasar granularitasnya, makin besar kelebihan bayar terhadap kerja yang sebenarnya dilakukan.

    Contoh: satu ukuran untuk 130 menit membayar 96 kali kerja; per menit 2,2 kali.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • GraphQL

    Gaya API dengan satu endpoint tempat klien memilih bidang yang dibutuhkan. Cocok untuk banyak tampilan atas data yang sama, tetapi kueri mahal harus dibatasi kedalaman dan biayanya.

    Dipelajari di Modul 07 · Desain API

  • gRPCjuga: Protocol Buffers

    Gaya API pemanggilan prosedur bertipe di atas HTTP/2 dengan skema .proto dan pesan biner. Unggul untuk lalu lintas antarlayanan yang padat; butuh proxy untuk peramban.

    Contoh: pesan autosave biner 42 byte lawan JSON 176 byte.

    Dipelajari di Modul 07 · Desain API

  • happened-before

    Relasi urutan Lamport: a → b bila a dan b di proses yang sama dan a lebih dulu, atau a pengiriman pesan dan b penerimaannya, atau ada rantai di antaranya. Kejadian tanpa rantai seperti itu disebut bersamaan.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • head-of-line blocking

    Pesan kecil yang penting tertahan di belakang pekerjaan besar yang bisa ditunda, karena keduanya berbagi satu antrean.

    Contoh: dinding penilaian 20.40.00 menahan 2.796 autosave sampai 12 detik; prioritas menghapusnya.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • heavy hittersjuga: Space-Saving

    Kunci yang paling sering muncul dalam aliran. Space-Saving menemukannya dengan k pencacah tanpa daftar kandidat: setiap kunci dengan frekuensi lebih dari N/k dijamin terpantau.

    Contoh: soal terpopuler dari jutaan kejadian autosave.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • hedged requestjuga: hedge, permintaan cadangan

    Permintaan cadangan ke replika lain bila jawaban pertama belum datang setelah tunda tertentu; jawaban yang lebih dulu dipakai. Hanya untuk operasi idempoten atau baca, ke replika independen, dengan anggaran tambahan.

    Contoh: hedge setelah 50 ms menurunkan porsi lambat dari 63% ke ±1% dengan ±1% permintaan tambahan.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • histogram latensijuga: ember histogram

    Hitungan permintaan per ember latensi. Histogram beberapa mesin bisa dijumlah per ember, dan persentil dari histogram gabungan salah paling banyak selebar satu ember.

    Contoh: dua mesin 9.000 dan 1.000 permintaan memberi p95 gabungan ≤ 250 ms, bukan rata-rata p95 150 ms.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • HMACjuga: HMAC-SHA256

    Tanda tangan dari isi pesan dan kunci rahasia server. Tanpa kunci, tanda yang cocok tidak bisa dibuat, jadi perubahan terdeteksi; isinya tetap bisa dibaca siapa pun.

    Contoh: kursor muatan.tanda yang muatannya diubah ditolak.

    Dipelajari di Modul 07 · Desain API

  • hotspotjuga: rasio panas

    Partisi atau simpul yang menerima beban jauh di atas rata-rata. Rasio panas = beban terbesar dibagi beban rata-rata per partisi.

    Contoh: partisi waktu pada detik puncak memberi rasio 13 dari 13 partisi; hash peserta 1,11.

    Dipelajari di Modul 04 · Basis data dalam skala

  • hukum Littlejuga: L = λW

    Untuk sistem stabil apa pun, rata-rata jumlah di dalam sistem (L) sama dengan laju masuk (λ) dikali lama rata-rata di dalam (W), tanpa asumsi distribusi. Dipakai untuk menghitung koneksi sibuk, pekerjaan yang sedang berjalan, dan tulisan dalam perjalanan.

    Contoh: 1.106 autosave per detik × 0,048 detik per transaksi = ±53 koneksi sibuk.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • HyperLogLogjuga: HLL, HyperLogLog++

    Penghitung elemen unik: p bit hash memilih register, register menyimpan awalan nol terpanjang, dan taksiran memakai rata-rata harmonik. Galat ±1,04/√m, bisa digabung dengan max per register.

    Contoh: p = 14 (16.384 register) memberi galat standar ±0,81%.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • ID korelasijuga: correlation ID, trace ID

    Pengenal satu permintaan yang dibawa dari edge ke API ke basis data dan dicetak di setiap log, sehingga metrik, log, dan trace tentang kejadian yang sama bisa disatukan.

    Contoh: mencari semua log satu autosave yang lambat dengan satu ID.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • idempotenjuga: idempotensi

    Sifat operasi yang hasilnya sama walau diterapkan sekali atau berkali-kali. GET, PUT, dan DELETE idempoten menurut HTTP; POST tidak, kecuali dibuat idempoten.

    Contoh: PUT …/answers/7 dengan revisi 3 yang dikirim dua kali hanya menyimpan satu jawaban.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • IDORjuga: insecure direct object reference

    Celah ketika server mengembalikan atau mengubah objek berdasarkan ID dari klien tanpa memeriksa apakah peminta berhak atas objek itu.

    Contoh: siswa mengganti ID attempt di URL dan melihat jawaban siswa lain.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • indeks dispersi

    Varians jumlah kedatangan per detik dibagi rata-ratanya. Untuk kedatangan Poisson nilainya ≈ 1; jauh di atas 1 berarti lonjakan. Dipakai untuk memilih Erlang C (fase tunak) atau model fluida (lonjakan).

    Contoh: 19.30–20.00 berdispersi 0,93, sedangkan 19.00–19.05 berdispersi 236.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • indeks terbalikjuga: inverted index, posting list

    Peta dari setiap token ke daftar terurut id dokumen yang memuatnya. Kueri AND adalah irisan posting list, paling banyak n + m langkah dengan dua penunjuk.

    Contoh: "bilangan" [1, 2, 5, 6] AND "prima" [1, 3, 5, 6] = [1, 5, 6].

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • indeks vektor perkiraanjuga: approximate nearest neighbor, ANN, HNSW

    Indeks yang mencari tetangga terdekat di ruang vektor berdimensi tinggi dengan menukar ketepatan dengan waktu dan memori. Galatnya tidak dijamin rumus, jadi recall@k harus diukur.

    Contoh: parameter ef_search HNSW menukar kecepatan dengan recall.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • infrastructure as codejuga: IaC, drift, reconciler

    Infrastruktur ditulis sebagai berkas keadaan diinginkan yang ditinjau seperti kode. Alat menyusun rencana idempoten dari selisihnya dengan keadaan sebenarnya; perubahan lewat klik muncul sebagai drift.

    Contoh: rencana "buat, tunggu sehat, baru hapus" tidak pernah menurunkan machine sehat.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • isolat V8juga: isolat

    Konteks JavaScript ringan di dalam proses yang sudah berjalan, dipakai Cloudflare Workers. Mulai dalam milidetik, dengan batas CPU, memori 128 MB, dan ukuran Worker yang ketat.

    Contoh: kode global Worker harus selesai dalam 1 detik.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • jam Lamport

    Satu bilangan per proses yang naik setiap kejadian dan ikut dikirim bersama pesan; penerima mengambil maksimum lalu menambah satu. Bila a → b maka L(a) < L(b), tetapi tidak sebaliknya.

    Contoh: tulisan D dari laptop mendapat 2 dan tulisan C dari ponsel 4, padahal keduanya bersamaan.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • jam monotonjuga: time.monotonic, performance.now

    Jam yang hanya naik dan tidak terpengaruh pengaturan jam dinding. Dipakai untuk mengukur durasi, bukan untuk mengetahui pukul berapa.

    Contoh: sisa waktu ujian di layar = sisa dari server saat halaman dimuat − waktu monoton yang berlalu.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • jam otoritatif

    Satu sumber jam yang dipakai untuk semua keputusan penting, biasanya jam server saat tulisan tiba atau jam basis data. Jam kiriman klien boleh dicatat, tetapi tidak pernah memutuskan.

    Contoh: server menolak autosave bila now >= deadline menurut jamnya sendiri.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • jam vektorjuga: vector clock

    Satu penghitung per proses. Gabung = maksimum per elemen lalu naikkan penghitung sendiri. A sebelum B bila semua elemen A ≤ B dan tidak identik; bila tidak ada yang ≤, keduanya bersamaan dan menandai konflik.

    Contoh: {L:1, P:2, S:1} dan {L:2} bersamaan.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • jendela geserjuga: sliding window, jendela tetap

    Jendela waktu yang dicoba di setiap kemungkinan awal, bukan blok berurutan (00–59, 60–119, …) seperti jendela tetap. Jendela tetap bisa memotong lonjakan menjadi dua dan meremehkannya.

    Contoh: maksimum katalog dalam 60 detik 10.063 menurut jendela geser, 9.870 menurut jendela tetap.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • jitter

    Pengacakan kecil pada waktu (TTL, jeda coba ulang, jadwal) agar kejadian yang disinkronkan jam tidak menyerbu pada detik yang sama.

    Contoh: jitter ±10% pada TTL 300 detik menurunkan puncak pemuatan ulang dari 1.000 ke 26 per detik.

    Dipelajari di Modul 03 · Caching

  • k dari n

    Ketersediaan sistem yang butuh minimal k dari n replika identik hidup, dihitung dengan rumus binomial. Kuorum mayoritas adalah k = ⌊n/2⌋ + 1.

    Contoh: 2 dari 3 replika 0,99 memberi 0,999702; semua 3 harus hidup hanya 0,970299.

    Dipelajari di Modul 08 · Keandalan

  • kebutuhan nonfungsionaljuga: kebutuhan fungsional

    Kebutuhan yang menjawab seberapa baik sistem bekerja (cepat, andal, tahan, murah), berbeda dengan kebutuhan fungsional yang menjawab apa yang dilakukan. Kebutuhan nonfungsional yang sah punya angka, satuan, jendela waktu, dan cara ukur.

    Contoh: "99% permintaan mulai selesai di bawah 5 detik, termasuk waktu di ruang tunggu".

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • kegagalan berkorelasi

    Kegagalan yang menimpa beberapa salinan sekaligus, misalnya region yang sama atau konfigurasi buruk yang di-deploy ke semua mesin. Membatalkan asumsi redundansi independen.

    Contoh: dua mesin 99,5% di region 99,95% paling tinggi ±99,9475%, bukan 99,9975%.

    Dipelajari di Modul 08 · Keandalan

  • kegagalan lambatjuga: fail-slow, gray failure

    Dependensi yang masih menjawab tetapi jauh lebih lambat. Tidak memicu alarm "mati", tetapi menahan koneksi dan pekerja bersama, sehingga bagian sistem yang tidak memakainya ikut gagal.

    Contoh: Storage 50 ms lebih lambat membuat 47 dari 150 peserta berhenti, termasuk autosave.

    Dipelajari di Modul 08 · Keandalan

  • kehadiranjuga: presence, detak, heartbeat

    Status "siapa sedang daring", biasanya dari detak setiap h detik dan batas waktu T. Luring palsu terjadi bila ⌊T/h⌋ detak beruntun hilang.

    Contoh: detak 20 detik dan batas 45 detik berarti dua detak harus hilang.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • ketersediaanjuga: availability

    Porsi waktu sistem berfungsi, A = MTBF ÷ (MTBF + MTTR). Untuk komponen independen, seri dikalikan dan paralel 1 − Π(1 − Aᵢ).

    Contoh: 99,9% berarti ±43,2 menit padam per 30 hari.

    Dipelajari di Modul 08 · Keandalan

  • komponen terhubung kuatjuga: strongly connected component, SCC

    Himpunan simpul graf berarah yang masing-masing bisa mencapai semua yang lain. Di graf impor, satu komponen berisi k paket berarti k paket itu secara efektif satu modul.

    Contoh: 13 dari 19 paket domain sebuah backend berada di satu komponen.

    Dipelajari di Modul 09 · Pola arsitektur

  • konsensus

    Masalah membuat beberapa proses memutuskan nilai yang sama, yang memang pernah diusulkan, walau sebagian bisa gagal. Algoritme praktis menjamin keamanan selalu dan kemajuan selama jaringan cukup sering tepat waktu.

    Contoh: memilih satu pemimpin replikasi atau satu pemegang tugas "hitung persentil".

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • konsistensi akhirjuga: eventual consistency

    Janji paling lemah: bila tulisan berhenti, semua salinan akhirnya sama. Selama itu, pembaca boleh melihat nilai lama.

    Contoh: hitungan "peserta sedang mengerjakan" yang telat beberapa detik masih bisa diterima.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • konsistensi kausal

    Bila tulisan B dibuat sesudah melihat tulisan A, semua orang melihat A sebelum B. Tulisan yang tidak saling tahu boleh terlihat dalam urutan berbeda.

    Contoh: koreksi soal tidak boleh terlihat sebelum pengumuman soalnya.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • koreografijuga: orkestrasi

    Cara menjalankan saga tanpa koordinator pusat: setiap konteks bereaksi terhadap kejadian konteks lain. Orkestrasi memakai satu koordinator yang tahu urutannya.

    Contoh: notifikasi gateway yang tiba kemudian menggerakkan langkah pembelian berikutnya.

    Dipelajari di Modul 09 · Pola arsitektur

  • kunci cachejuga: cache key

    Teks yang menentukan entri cache mana yang dipakai sebuah permintaan. Harus memuat semua yang membedakan isi (versi, pengguna untuk respons pribadi, parameter yang dinormalkan).

    Contoh: GET /akun/saya tanpa pengguna di kunci menyajikan data seseorang kepada orang lain.

    Dipelajari di Modul 03 · Caching

  • kunci idempotenjuga: Idempotency-Key

    Pengenal unik satu niat yang ikut di setiap pengiriman ulang. Penerima menyimpan kunci beserta hasilnya; kunci yang sama mendapat hasil lama, dan kunci sama dengan isi berbeda ditolak.

    Contoh: kunci k1 untuk Rp49.000 lalu Rp29.000 adalah galat klien, bukan duplikat.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • kunci semantik

    Penangkal anomali saga tanpa isolasi: sumber daya ditandai "sedang dipesan", bukan langsung "terpakai", sehingga saga lain tahu keadaannya sementara.

    Contoh: kuota promo reserved membuat pembeli lain mendapat pesan "coba lagi 15 menit", bukan "habis".

    Dipelajari di Modul 09 · Pola arsitektur

  • kuorumjuga: N/R/W, kuorum baca, kuorum tulis

    Aturan replikasi: setiap kunci disimpan di N replika, tulisan berhasil setelah W replika mengakui, dan baca mengambil R replika. Bila R + W > N, pembaca pasti bertemu tulisan terakhir.

    Contoh: N = 5, R = 2, W = 2 masih basi 30% dari waktu; W = 4 membuatnya 0.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • lag proyeksi

    Seberapa jauh model baca tertinggal dari model tulis. Menurut hukum Little, lag ≈ antrean kejadian ÷ laju pemroyeksi.

    Contoh: pemroyeksi 100 per detik tertinggal 21 detik saat 2.238 kumpul tiba dalam satu detik.

    Dipelajari di Modul 09 · Pola arsitektur

  • latensi ekorjuga: tail latency, tail at scale

    Latensi persentil tinggi (p99 ke atas). Permintaan yang menunggu n server paralel lambat bila salah satunya lambat, dengan peluang 1 − (1 − p)ⁿ, sehingga ekor membesar bersama fan-out.

    Contoh: 1% lambat per server dan fan-out 100 membuat 63% permintaan pengguna lambat.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • layanan mikrojuga: microservices

    Arsitektur dengan banyak layanan yang di-deploy sendiri-sendiri dan berkomunikasi lewat jaringan. Membeli kemandirian rilis, skala, dan bahasa dengan harga latensi, titik gagal tambahan, dan operasi.

    Contoh: empat lompatan berurutan pada 99,95% per layanan menaikkan menit padam per bulan lima kali lipat.

    Dipelajari di Modul 09 · Pola arsitektur

  • layanan tanpa statusjuga: stateless, status tersembunyi

    Layanan yang setiap permintaannya bisa dilayani mesin mana pun, karena status tidak tinggal di memori atau disk satu mesin. Status tersembunyi seperti sesi, pembatas laju, atau cache lokal membuat layanan rusak diam-diam saat diperbanyak.

    Contoh: pembatas "6 per menit" di memori dua mesin meloloskan 12.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • lease

    Token yang diberikan cache kepada satu pemanggil yang meleset. Penghapusan membatalkan token, sehingga pengisian dengan token yang sudah batal ditolak dan nilai basi tidak masuk cache.

    Dipelajari di Modul 03 · Caching

  • LFUjuga: least frequently used, peluruhan

    Kebijakan pengusiran cache yang membuang kunci yang paling jarang dipakai. Tanpa peluruhan frekuensi, kunci lama yang dulu populer tidak pernah tergusur saat himpunan kerja berganti.

    Contoh: LFU kontrak kapasitas 100 memberi 0,6412 di fase A tetapi 0,5021 di fase B.

    Dipelajari di Modul 03 · Caching

  • linear counting

    Koreksi HyperLogLog untuk n kecil: bila taksiran ≤ 2,5m dan masih ada V register nol, pakai m·ln(m/V).

    Contoh: tanpa koreksi ini, himpunan kosong ditaksir ±738 untuk p = 10; dengan koreksi, 0.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • linearizabilityjuga: linearisabilitas, strict serializability

    Janji konsistensi terkuat untuk satu objek: setiap operasi tampak terjadi seketika di satu titik antara mulai dan selesainya, dan setiap baca melihat tulisan terakhir yang sudah selesai, sesuai urutan waktu nyata.

    Contoh: begitu server memutuskan "waktu habis" untuk satu attempt, tidak ada autosave sesudahnya yang diterima.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • livenessjuga: readiness, health check

    Liveness memeriksa apakah proses masih hidup dan tidak boleh menyentuh dependensi; bila gagal, proses dimulai ulang. Readiness memeriksa apakah mesin boleh diberi permintaan dan boleh menyentuh dependensi wajib; bila gagal, mesin dikeluarkan dari rotasi.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • lokalitasjuga: lokalitas temporal, lokalitas spasial

    Kecenderungan permintaan tidak tersebar merata: yang baru diminta kemungkinan diminta lagi (temporal), dan yang berdekatan ikut diminta (spasial). Inilah alasan cache bekerja.

    Dipelajari di Modul 03 · Caching

  • lonjakan ganda

    Kelemahan pembatas jendela tetap: hitungan direset setiap pergantian jendela, sehingga klien bisa lolos hampir 2× batas dalam waktu singkat di sekitar batas jendela.

    Contoh: 60 permintaan di detik 59,5–60 dan 60 di detik 60,0–60,5 lolos semua dengan batas 60 per menit.

    Dipelajari di Modul 07 · Desain API

  • LRUjuga: least recently used

    Kebijakan pengusiran cache yang membuang kunci yang paling lama tidak dipakai. Tahan terhadap himpunan kerja yang bergeser dan bisa dibuat O(1) dengan tabel hash plus daftar berantai ganda (OrderedDict).

    Dipelajari di Modul 03 · Caching

  • LSNjuga: log sequence number, token posisi WAL

    Nomor posisi di WAL. Sesi menyimpan LSN tulisannya sebagai token, lalu membaca dari replika hanya bila replika sudah menerapkan sampai posisi itu.

    Dipelajari di Modul 04 · Basis data dalam skala

  • mayoritas ketatjuga: suara mayoritas

    Lebih dari separuh simpul: 2 × suara > n. Dua mayoritas selalu beririsan, sehingga klaster n simpul tahan ⌊(n − 1)/2⌋ simpul mati.

    Contoh: klaster 4 simpul butuh 3 suara dan tetap hanya tahan 1 simpul mati, sama dengan klaster 3 simpul.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • metode RED

    Daftar periksa pengamatan per endpoint: Rate (permintaan per detik), Errors (permintaan gagal, dari 5xx dan timeout, bukan 4xx yang disengaja), dan Duration (distribusi latensi sebagai histogram).

    Contoh: autosave 40 per detik, galat 0,25%, p95 65,5 ms.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • metode USE

    Daftar periksa pengamatan per sumber daya: Utilization (porsi waktu sibuk), Saturation (kerja yang menunggu, misalnya panjang antrean), dan Errors. Wajib untuk sumber daya berbatas keras seperti CPU, pool koneksi, kuota, dan antrean.

    Contoh: CPU 15% tetapi antrean pool koneksi tumbuh: saturasi, bukan utilisasi.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • MiBjuga: MB lawan MiB

    Mebibyte, 2²⁰ = 1.048.576 byte, berbeda dengan megabyte (10⁶ byte). Batas platform sering dalam MiB, keluaran alat build sering dalam MB.

    Contoh: 64 MiB = 67.108.864 byte, jadi 66 MB masih lolos.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • model ancamanjuga: threat model, pemodelan ancaman

    Daftar terstruktur apa yang bisa salah pada sebuah desain: komponen, aliran data, batas kepercayaan, ancaman per aliran, kontrol yang sudah ada, dan celah yang tersisa beserta pemiliknya. Defensif: isinya kontrol, bukan langkah serangan.

    Contoh: tabel STRIDE Tryout Nusantara berisi 42 baris untuk tujuh aliran lintas batas.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • model terbukajuga: model tertutup, coordinated omission

    Uji beban yang mengirim permintaan sesuai jadwal kedatangan, tidak peduli server sedang sibuk. Model tertutup menunggu respons sebelum mengirim lagi, sehingga melambat bersama server dan menyembunyikan antrean; latensi diukur dari waktu terjadwal.

    Contoh: lonjakan 19.00 adalah model terbuka: peserta menekan tombol pada waktunya.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • monolit modularjuga: modular monolith

    Aplikasi yang di-deploy sebagai satu unit, tetapi dibagi menjadi modul dengan API publik dan aturan dependensi yang diperiksa mesin. Memberi sebagian besar manfaat desain layanan mikro tanpa lompatan jaringan.

    Contoh: konteks Ujian hanya boleh mengimpor tryout.service, bukan tryout.models.

    Dipelajari di Modul 09 · Pola arsitektur

  • monolit terdistribusi

    Beberapa "layanan" yang berbagi basis data atau tabel yang sama, sehingga harus dirilis bersama. Membayar semua harga jaringan layanan mikro tanpa mendapat kemandiriannya.

    Contoh: Katalog, Ujian, dan Penilaian yang sama-sama menulis tabel attempts.

    Dipelajari di Modul 09 · Pola arsitektur

  • MTBFjuga: MTTR

    MTBF: rata-rata waktu antara dua kegagalan. MTTR: rata-rata waktu pemulihan. Ketersediaan naik dengan jarang gagal atau dengan cepat pulih.

    Dipelajari di Modul 08 · Keandalan

  • multi-tenantjuga: tenant, silo, noisy neighbor

    Satu sistem melayani banyak pemilik data yang harus terisolasi. Model silo memberi satu basis data per tenant, bridge satu skema per tenant, dan pool tabel bersama dengan kolom pemilik yang dijaga filter kode dan RLS.

    Contoh: 500 sekolah dengan model silo dan pool 3 koneksi butuh 1.500 koneksi siaga.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • N+1

    Aturan kapasitas: jumlah mesin cukup untuk beban puncak walau satu mesin mati atau sedang diganti. Di skala besar dihitung per domain kegagalan, misalnya per zona.

    Contoh: butuh 20 mesin 8 inti untuk menit tersibuk, jadi jalankan 21.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • NATjuga: CGNAT, network address translation

    Penerjemahan alamat yang membuat banyak perangkat berbagi satu IP publik, misalnya satu laboratorium sekolah atau satu operator seluler. Pembatas laju per IP menghukum semua pengguna di balik NAT yang sama.

    Contoh: 40 siswa di balik satu IP sekolah mengirim 80 permintaan katalog per menit; ember 60 menolak ±20.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • OpenAPIjuga: kontrak API, drift kontrak

    Format kontrak API REST (versi 3.1 selaras JSON Schema) yang mencatat endpoint, skema, dan kode status. Kontrak yang dibangkitkan dari kode diperiksa di CI agar tidak berbeda dari perilaku sebenarnya.

    Dipelajari di Modul 07 · Desain API

  • OpenNext

    Adaptor yang membungkus aplikasi Next.js menjadi satu Worker. Semua yang diimpor ikut ke bundel, dan cache halaman harus dipasang agar halaman prerender tidak dirender ulang.

    Contoh: tanpa incrementalCache, halaman statis bisa kehabisan batas CPU.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • OpenTelemetryjuga: OTel, OTLP, Collector

    Standar terbuka untuk metrik, log, dan trace: API dan SDK untuk instrumentasi, protokol OTLP untuk mengirim, Collector untuk memproses dan meneruskan, dan nama atribut seragam. Instrumentasi ditulis sekali, penyimpanannya bisa diganti.

    Contoh: span http.request.method yang sama di Python dan TypeScript.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • originjuga: server asal

    Server aplikasi di belakang CDN atau edge yang melayani permintaan yang tidak bisa dijawab dari cache. Origin yang bisa dipanggil langsung melewati semua kontrol di edge, jadi ia hanya menerima permintaan yang membawa bukti dari edge.

    Contoh: header rahasia bersama yang diputar, atau mTLS antara edge dan origin.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • PACELC

    Perluasan CAP oleh Abadi (2012): bila ada partisi, pilih ketersediaan atau konsistensi; bila normal, pilih latensi atau konsistensi. Konsistensi kuat selalu berarti menunggu salinan lain menjawab.

    Contoh: replika sinkron berjarak 90 ms membuat 1.106 tulisan per detik menahan ±99,5 koneksi tambahan.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • paginasi kursorjuga: keyset pagination, kursor, paginasi offset

    Paginasi yang mengingat posisi terakhir (misalnya skor dan id), bukan nomor baris. Tidak menggandakan atau melompati data saat papan berubah, dan tidak perlu melangkahi baris seperti offset.

    Contoh: WHERE (skor, id) < (:skor, :id) dengan pemecah seri id.

    Dipelajari di Modul 07 · Desain API

  • paparan token

    Lama token yang sudah dicabut masih bisa dipakai karena diverifikasi tanpa membaca basis data. Paparan terlama sama dengan TTL token; bila pencabutan jatuh pada waktu acak, rata-ratanya TTL/2.

    Contoh: token 900 detik memberi paparan rata-rata 450 detik dan terlama 900 detik.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • partisi jaringan

    Keadaan ketika sebagian simpul tidak bisa saling berkirim pesan, walau masing-masing masih hidup. Di sistem terdistribusi partisi pasti terjadi sesekali, jadi ia bukan pilihan.

    Contoh: dua simpul G1 dan G2 terputus; tulisan ke G1 tidak sampai ke G2.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • partisi rangejuga: partisi hash

    Partisi range membagi tabel menurut rentang nilai kunci partisi; partisi hash menurut hash kunci. Range efisien untuk kueri rentang tetapi rawan hotspot bila kuncinya monoton; hash meratakan tulisan.

    Dipelajari di Modul 04 · Basis data dalam skala

  • pembatas lajujuga: rate limiter, jendela geser log, jendela geser berbobot

    Mekanisme yang membatasi banyak permintaan per kunci (IP, pengguna, token) dalam waktu tertentu. Algoritmenya antara lain ember token, jendela tetap, dan jendela geser; kuncinya lebih menentukan dari algoritmenya.

    Contoh: katalog 60 per menit per IP di belakang satu proxy menolak 240 dari 300 permintaan.

    Dipelajari di Modul 07 · Desain API

  • pembuangan bebanjuga: load shedding

    Menolak permintaan berprioritas rendah lebih dulu dan dengan cepat (503 + Retry-After) saat kapasitas tidak cukup, agar pekerjaan wajib tetap terlayani.

    Dipelajari di Modul 08 · Keandalan

  • pemecah serijuga: tie-break, peringkat kompetisi

    Aturan untuk peserta bernilai sama: berbagi posisi ("1224"), dipecah waktu skor tercapai, atau dipecah nama. Aturannya keputusan produk yang ditulis sebelum memilih struktur data.

    Contoh: papan langsung memecah seri dengan waktu; peringkat akhir berbagi posisi.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • pemutus sirkuitjuga: circuit breaker

    Pelindung yang berhenti memanggil dependensi setelah sejumlah kegagalan beruntun, menolak cepat selama jeda, lalu membiarkan satu panggilan uji lewat.

    Contoh: Storage padam 30 detik: tanpa pemutus 300 panggilan, dengan pemutus 11.

    Dipelajari di Modul 08 · Keandalan

  • penskalaan terjadwaljuga: scheduled scaling

    Menaikkan kapasitas sebelum acara yang jadwalnya diketahui dan menurunkannya sesudahnya, karena autoscaler reaktif baru menambah mesin setelah lonjakan lewat.

    Contoh: kapasitas fase 19.00 aktif sejak 18.45 dan diturunkan setelah 20.45.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • penyeimbang bebanjuga: load balancer

    Komponen yang membagi permintaan ke beberapa server. Penyeimbang L4 meneruskan koneksi TCP tanpa membaca isinya; penyeimbang L7 membaca permintaan HTTP sehingga bisa memilih per permintaan.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • penyimpanan objekjuga: object storage, S3

    Penyimpanan objek utuh di bawah kunci, tanpa pengubahan sebagian dan tanpa rename murah. Versi baru disimpan dengan kunci baru agar cache bisa berumur panjang.

    Contoh: gambar soal /soal/paket-a/056.svg diunduh peramban langsung dari penyimpanan.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • penyusulanjuga: susulan berkala, lubang urutan

    Protokol penerima berurut: kabar bernomor urut per topik; bila nomor melompat, penerima mengambil sisanya dari log; susulan berkala menutup pesan terakhir yang hilang.

    Contoh: tiba 1, 2, 5 → ambil 3, 4, 5 dari log.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • perjalanan pulang-pergijuga: round trip, RTT

    Waktu sebuah pesan pergi ke tujuan dan jawabannya kembali. Waktu tunggu jaringan sebuah operasi kira-kira jumlah perjalanan berurutan dikali waktu satu perjalanan.

    Contoh: 24 pernyataan SQL × 100 ms antarregion = 2,4 detik menunggu jaringan per autosave.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • persentiljuga: p50, p95, p99, interpolasi linear inklusif

    Nilai yang di bawahnya terletak p% pengamatan. Definisinya tidak tunggal untuk sampel berhingga, jadi metodenya ditulis; course ini memakai interpolasi linear inklusif. Persentil tidak bisa dirata-rata antarmesin.

    Contoh: p95 dari sepuluh latensi bisa 260,5, 400, atau 539,5 tergantung metode.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • pesan beracunjuga: poison message

    Pesan yang selalu gagal diproses, misalnya JSON rusak atau data yang sudah dihapus. Tanpa DLQ, pesan ini muncul lagi setiap batas waktu dan memakan pekerja.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • pola outboxjuga: transactional outbox, outbox, kotak keluar, relay

    Data bisnis dan baris peristiwa ditulis dalam satu transaksi; proses relay mengirim baris yang belum terkirim lalu menandainya. Peristiwa tidak bisa hilang atau muncul tanpa data, tetapi bisa terkirim dua kali.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • pollingjuga: long polling

    Klien bertanya ke server setiap T detik: n/T permintaan per detik dengan tunda rata-rata T/2. Long polling menahan permintaan sampai ada kabar atau batas waktu.

    Contoh: 50.000 peserta polling setiap 5 detik = 10.000 permintaan per detik.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • proxy tepercayajuga: trusted proxy

    Proxy milikmu yang alamatnya dikenal server. Header alamat klien hanya dipercaya bila koneksi datang dari proxy seperti ini, dan rantainya ditelusuri dari kanan.

    Dipelajari di Modul 07 · Desain API

  • pub/subjuga: publish/subscribe, topik

    Pola yang memisahkan penerbit dari penerima lewat topik. Penerbit tidak tahu jumlah penerima, tetapi sistem tetap mengirim satu salinan per penerima.

    Contoh: panitia menerbitkan ke edisi:utbk-e3, setiap koneksi peserta berlangganan.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • PYTHONHASHSEED

    Variabel lingkungan yang menentukan pengacakan hash() bawaan untuk str dan bytes. Tanpa dipatok, nilainya berbeda di setiap proses, jadi hash() tidak boleh dipakai untuk apa pun yang disimpan atau dibandingkan antarproses.

    Contoh: filter yang dibangun dengan hash() menolak 962 dari 1.000 kode sah di proses lain.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • QPSjuga: queries per second

    Banyak permintaan per detik, dihitung rata-rata dan puncak. QPS rata-rata = pengguna aktif × permintaan per pengguna per jam / 3.600.

    Contoh: seluruh endpoint Try Out kontrak rata-rata 725,8 per detik, puncak 7.788 per detik.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • quadtree

    Indeks spasial yang membagi ruang menjadi empat secara adaptif: sel hanya dipecah bila isinya melebihi ambang, sehingga daerah padat terbagi halus.

    Contoh: Jakarta yang padat terbagi halus, laut lepas tetap satu sel.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • Raftjuga: RequestVote, AppendEntries

    Algoritme konsensus (Ongaro & Ousterhout 2014) dengan peran pengikut, kandidat, dan pemimpin. Satu suara per term dan suara mayoritas menjamin paling banyak satu pemimpin per term; entri terkomit setelah tersimpan di mayoritas.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • rasio hitjuga: rasio meleset, hit ratio

    Porsi permintaan yang dijawab cache. Beban ke asal ditentukan rasio meleset (1 − rasio hit), sehingga naik dari 90% ke 99% menurunkan beban asal sepuluh kali.

    Contoh: LRU kapasitas 100 pada jejak kontrak memberi rasio hit 0,5320.

    Dipelajari di Modul 03 · Caching

  • read-your-writesjuga: monotonic reads, jaminan sesi

    Jaminan bahwa pembacaan dalam satu sesi selalu melihat tulisan sesi itu sendiri. Monotonic reads: sesi tidak pernah membaca data yang lebih tua dari yang sudah dilihatnya. Bisa dijaga dengan token posisi WAL.

    Dipelajari di Modul 04 · Basis data dalam skala

  • rebalancingjuga: jumlah partisi tetap

    Memindahkan data antarsimpul saat simpul ditambah atau dikurangi, sambil sistem tetap melayani: salin, alihkan pembacaan, baru hapus. Dengan jumlah partisi tetap, partisi utuh berganti pemilik dan kunci tidak pernah berganti partisi.

    Dipelajari di Modul 04 · Basis data dalam skala

  • refresh tokenjuga: token penyegar

    Token berumur panjang yang hanya dipakai untuk menerbitkan token akses baru yang berumur pendek. Disimpan di cookie HttpOnly, Secure, dan SameSite, sehingga tidak terbaca skrip di halaman.

    Contoh: token akses 15 menit ditambah cookie refresh 30 hari.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • regionjuga: zona ketersediaan, availability zone

    Region adalah lokasi geografis penyedia cloud; di dalamnya ada beberapa zona ketersediaan, yaitu pusat data dengan listrik dan jaringan sendiri. Zona hanya menambah ketersediaan bila kegagalannya independen.

    Contoh: API dan basis data di region yang sama memangkas RTT dari ±100 ms ke ±2 ms.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • replikasi asinkronjuga: replikasi sinkron, synchronous_commit

    Replikasi di mana COMMIT tidak menunggu replika. Cepat, tetapi tulisan sejumlah laju × lag bisa hilang saat failover. Replikasi sinkron menunggu replika dengan harga latensi COMMIT.

    Contoh: 1.106 autosave per detik × lag 150 ms = ±166 tulisan dalam perjalanan.

    Dipelajari di Modul 04 · Basis data dalam skala

  • replikasi leader–followerjuga: leader, follower, replika baca

    Satu simpul (leader) menerima semua tulisan dan mencatatnya di WAL; follower memutar ulang WAL itu dan melayani baca. Replika baca membantu beban baca, tidak membantu tulisan.

    Dipelajari di Modul 04 · Basis data dalam skala

  • REST

    Gaya API berbasis sumber daya dan metode HTTP, biasanya dengan JSON. Unggul untuk API publik dan peramban karena cache HTTP dan alatnya ada di mana-mana.

    Dipelajari di Modul 07 · Desain API

  • Retry-After

    Header HTTP pada 429 atau 503 yang memberi tahu klien kapan sebaiknya mencoba lagi, sehingga klien yang patuh tidak membanjiri server.

    Dipelajari di Modul 07 · Desain API

  • revisi monotonjuga: client revision

    Nomor yang dinaikkan pembuat niat setiap kali data berubah, misalnya klien setiap peserta mengubah jawaban. Penerima hanya menerapkan revisi yang lebih besar dari yang tersimpan, sehingga urutan tiba tidak penting.

    Contoh: revisi 2, 1, 3, 3 untuk soal 7 menyisakan revisi 3 yang pertama tiba.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • RLSjuga: row level security, kebijakan baris, WITH CHECK

    Kebijakan PostgreSQL yang menyaring baris per pengguna di dalam basis data. Tanpa kebijakan berlaku tolak semua, kebijakan dievaluasi sebelum syarat kueri, dan WITH CHECK memeriksa baris hasil tulisan. Peran superuser dan BYPASSRLS melewatinya.

    Contoh: kueri yang lupa WHERE pemilik = … tetap hanya mengembalikan baris milik pengguna sesi.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • rolling deploy

    Deploy yang mengganti mesin satu per satu. Selama satu dari n mesin diganti, kapasitas tinggal (n − 1)/n, jadi dua mesin berarti 50% di tengah acara.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • rotasi kuncijuga: kid, masa tenggang

    Mengganti kunci penandatangan tanpa memutus benda yang masih beredar: setiap kunci punya pengenal kid, kunci baru langsung menandatangani, dan kunci lama masih diterima untuk verifikasi selama masa tenggang sepanjang masa berlaku terpanjang yang ditandatanganinya.

    Contoh: diputar pada t = 1.000 dengan tenggang 600, token k1 diterima sampai t = 1.599.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • ruang tunggujuga: waiting room

    Antrean di depan sistem yang meloloskan pengguna dengan laju terbatas dan memberi tahu posisi mereka, sehingga lonjakan menjadi aliran tertib. Kerja tidak hilang, hanya ditunda.

    Contoh: ruang tunggu 300 mulai per detik memotong kebutuhan dari 300 menjadi 151 inti, dengan tunggu paling lama 25 detik.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • sagajuga: kompensasi, transaksi kompensasi

    Urutan transaksi lokal T1 … Tn, masing-masing dengan kompensasi. Bila Tk gagal, kompensasi k−1 … 1 dijalankan berurutan terbalik (Garcia-Molina dan Salem 1987). Tidak ada kunci lintas langkah dan tidak ada isolasi.

    Contoh: tagihan gagal, maka order dibatalkan lalu pemakaian promo dilepas.

    Dipelajari di Modul 09 · Pola arsitektur

  • scale-to-zerojuga: instans minimum, pemanasan terjadwal

    Mematikan semua instans saat tidak ada trafik. Hemat, tetapi permintaan pertama menunggu boot; instans minimum atau pemanasan terjadwal menukar biaya tetap dengan latensi.

    Contoh: boot dingin melewati batas waktu web 5 detik, sehingga login gagal.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • sekatjuga: bulkhead

    Pembagian sumber daya bersama (pool koneksi, pekerja, kuota) per jenis pekerjaan atau per dependensi, agar satu bagian yang macet tidak menghabiskan semuanya.

    Contoh: tanda tangan Storage sesudah koneksi basis data dilepas membuat autosave tidak merasakan Storage 200 ms.

    Dipelajari di Modul 08 · Keandalan

  • serverlessjuga: fungsi serverless

    Model komputasi yang ditagih per pemakaian (permintaan, durasi atau CPU) dan diskalakan otomatis oleh penyedia, dengan harga cold start, batas konkurensi, dan batas platform.

    Contoh: Workers Standard menagih $0,30 per juta permintaan di atas kuota termasuk.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • sesi lengketjuga: sticky session

    Cara penyeimbang beban selalu mengirim pengguna yang sama ke mesin yang sama agar sesinya bisa tetap di memori. Sesinya hilang saat mesin mati, dan dengan hash % n mencabut satu dari empat mesin memindahkan ±75% sesi.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • set basijuga: stale set

    Balapan pada cache-aside: pembaca memuat nilai lama, penulis mengubah basis data dan menghapus cache, lalu pembaca mengisi cache dengan nilai lama itu. Ditutup dengan lease, pengisian bersyarat versi, atau TTL pendek.

    Dipelajari di Modul 03 · Caching

  • sharding

    Membagi data ke banyak simpul basis data, masing-masing memegang sebagian kunci. Menambah kapasitas tulis, dengan harga transaksi lintas simpul, rebalancing, dan operasi yang lebih rumit.

    Dipelajari di Modul 04 · Basis data dalam skala

  • simpul virtualjuga: virtual node

    Beberapa titik cincin untuk satu simpul fisik. Makin banyak, makin rata bagian setiap simpul: koefisien variasinya √((n − 1)/(nv + 1)) ≈ 1/√v.

    Contoh: 10 simpul dengan 100 titik masing-masing memberi CV ±0,095, jadi simpul terpanas ±19% di atas rata-rata.

    Dipelajari di Modul 04 · Basis data dalam skala

  • simulasi berbasis kejadianjuga: discrete-event simulation

    Simulasi yang melompat dari satu kejadian ke kejadian berikutnya (datang, mulai layanan, selesai), bukan per satuan waktu. Dengan heap waktu bebas server, model antrean apa pun bisa diperiksa, termasuk yang tidak punya rumus.

    Contoh: 200.000 pelanggan M/M/c berbenih cocok dengan Erlang C sampai dua desimal.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • single-flightjuga: request coalescing

    Mekanisme yang memastikan satu pemuatan per kunci yang sedang dimuat: pemanggil pertama memuat, yang lain menunggu dan menerima hasil atau galat yang sama. Bukan cache: sesudah selesai, panggilan berikutnya memuat lagi.

    Dipelajari di Modul 03 · Caching

  • skala horizontaljuga: skala vertikal, scale out, scale up

    Skala horizontal menambah mesin yang sama; skala vertikal mengganti mesin dengan yang lebih besar. Horizontal butuh layanan tanpa status dan penyeimbang beban, tetapi menghindari batas ukuran mesin dan satu domain kegagalan.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • skip listjuga: rentang skip list

    Daftar berantai terurut dengan jalur cepat bertingkat acak (Pugh 1990). Pencarian ±(1/p)·log_{1/p} n langkah; bila setiap penunjuk menyimpan rentang, peringkat adalah jumlah rentang di jalur pencarian.

    Contoh: sorted set Redis memakai skip list dengan p = 1/4.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • SKIP LOCKEDjuga: FOR UPDATE SKIP LOCKED

    Klausa PostgreSQL yang membuat SELECT … FOR UPDATE melewati baris yang sedang dikunci transaksi lain, sehingga tabel bisa dipakai sebagai antrean tugas tanpa dua pekerja mengambil baris yang sama.

    Dipelajari di Modul 06 · Antrean dan pemrosesan asinkron

  • skor gabungan

    Dua angka yang dikodekan menjadi satu skor, misalnya nilai · 2^b + (2^b − 1 − waktu), agar sorted set memecah seri dengan waktu. Double hanya tepat sampai 2^53.

    Contoh: nilai ≤ 100.000 dengan mikrodetik sehari butuh 54 bit: seri bisa diam-diam kembali ke urutan nama.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • SLAjuga: service level agreement

    Janji keandalan kepada pelanggan beserta konsekuensinya, misalnya pengembalian dana. Biasanya dibuat lebih longgar dari SLO internal agar tim sempat bereaksi sebelum janji dilanggar.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • SLIjuga: service level indicator

    Ukuran layanan yang dihitung dari data, misalnya proporsi permintaan yang berhasil atau yang selesai di bawah 300 ms. SLI bisa salah ukur, jadi periksa metode HTTP, endpoint, dan kode status yang dihitung gagal.

    Contoh: proporsi autosave yang dibalas 2xx selama satu Try Out.

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • SLOjuga: service level objective

    Target untuk sebuah SLI pada jendela waktu tertentu. Untuk sistem yang berlonjak, SLO berbasis jumlah permintaan lebih jujur daripada SLO berbasis waktu henti.

    Contoh: "≥ 99,9% autosave berhasil per Try Out".

    Dipelajari di Modul 01 · Berpikir dalam sistem

  • snapshot

    Keadaan yang disimpan pada posisi log tertentu agar replay tidak mulai dari awal. Harus berupa salinan mandiri, bukan rujukan ke objek yang masih bisa diubah.

    Contoh: snapshot setiap 50 kejadian membatasi replay paling banyak 49 kejadian.

    Dipelajari di Modul 09 · Pola arsitektur

  • square-root staffing

    Aturan bahwa cadangan server untuk kualitas layanan yang sama tumbuh seperti akar beban: c ≈ a + β√a. Sistem besar boleh berjalan pada utilisasi lebih tinggi daripada sistem kecil.

    Contoh: 16 erlang butuh 21 server (76%), 1.600 erlang butuh 1.643 (97%).

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • SSEjuga: Server-Sent Events, EventSource

    Satu respons HTTP yang tidak pernah selesai; server menulis blok id:/event:/data: per kabar. Satu arah, teks, dan peramban menyambung ulang sendiri dengan Last-Event-ID.

    Contoh: pengumuman ralat soal 37 dikirim sebagai blok event: pengumuman.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • stale-while-revalidate

    Cara cache menyajikan nilai lama sesudah kedaluwarsa sambil satu pemuatan baru berjalan di latar, sehingga tidak ada pembaca yang menunggu.

    Dipelajari di Modul 03 · Caching

  • status setengahjuga: half-open

    Status pemutus sirkuit sesudah jeda lewat: satu panggilan uji boleh lewat; sukses menutup sirkuit, gagal membukanya lagi.

    Dipelajari di Modul 08 · Keandalan

  • strangler figjuga: perute strangler

    Pola migrasi bertahap: sistem baru mengambil alih fungsi satu per satu di balik satu fasad perutean. Pengguna diarahkan menurut ember hash yang tetap, sehingga menaikkan persentase hanya menambah pengguna dan menurunkannya ke 0 adalah jalan mundur.

    Contoh: /tryout/attempts 30% ke sistem baru, pengguna yang sama selalu ke sistem yang sama.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • STRIDE

    Daftar periksa enam jenis ancaman: spoofing, tampering, repudiation, information disclosure, denial of service, dan elevation of privilege. Di course ini setiap aliran lintas batas diperiksa untuk keenam huruf dari sudut penerima, jadi jumlah ancaman = 6 × aliran lintas batas.

    Contoh: notifikasi pembayaran lewat HTTPS tanpa tanda tangan tetap celah S, karena TLS tidak membuktikan identitas pengirim.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • struktur data probabilistikjuga: sketsa

    Struktur yang menukar jawaban tepat dengan memori dan waktu yang jauh lebih kecil, dengan galat yang bisa dihitung sebelumnya dan diuji.

    Contoh: HyperLogLog 3 KB menaksir 50.000 peserta unik dengan galat ±1,6%.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • suara terbelahjuga: split vote

    Pemilihan Raft tanpa pemenang karena beberapa kandidat muncul bersamaan dan membagi suara. Batas waktu pemilihan diacak agar jarang terjadi dan cepat pecah pada putaran berikutnya.

    Contoh: rentang batas waktu 150 ms dengan pesan 10 ms memberi ±29% peluang kandidat kedua.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • tail samplingjuga: head sampling, sampling trace

    Keputusan menyimpan trace yang diambil setelah trace selesai, misalnya simpan semua yang galat atau lambat. Head sampling memutuskan di awal secara acak: lebih murah, tetapi trace galat yang langka ikut terbuang.

    Contoh: volume mirip (0,204 lawan 0,170 GB), tetapi 11.323 lawan ±113 trace galat tersimpan.

    Dipelajari di Modul 14 · Observabilitas dan kapasitas

  • tangga skala

    Urutan memperbesar basis data dari yang termurah: kueri dan indeks, koneksi dan pooler, mesin lebih besar, replika baca, partisi, lalu sharding. Setiap anak tangga dinaiki hanya bila angka menunjukkan yang di bawahnya tidak cukup.

    Dipelajari di Modul 04 · Basis data dalam skala

  • TCOjuga: total biaya kepemilikan, build vs buy

    Total biaya kepemilikan per bulan: tagihan layanan ditambah jam engineer, risiko insiden, dan biaya keluar yang dicicil. Dipakai untuk memutuskan membangun sendiri atau membeli layanan terkelola.

    Contoh: pembatas laju di tabel Postgres yang sudah ada, bukan Redis terkelola baru.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • term

    Nomor periode di Raft yang naik setiap pemilihan dan ikut di setiap pesan. Simpul yang melihat term lebih besar langsung menjadi pengikut, sehingga pesan dari pemimpin usang mudah dikenali.

    Contoh: simpul yang terputus terus menaikkan term-nya dan saat kembali memaksa pemimpin sah turun.

    Dipelajari di Modul 05 · Konsistensi dan konsensus

  • thundering herdjuga: stampede, serbuan cache

    Ribuan permintaan yang meleset bersamaan untuk kunci yang sama dan semuanya memuat dari asal, sehingga pool koneksi habis.

    Contoh: 7.659 permintaan pada 19.00.00 ke cache kosong memicu 1.532 pemuatan identik dalam 200 ms.

    Dipelajari di Modul 03 · Caching

  • tinjauan desainjuga: design review, pra-baca

    Pertemuan untuk menguji dokumen desain: peninjau membaca dan menjalankan kodenya lebih dulu, setiap keberatan menunjuk angka, asumsi terbesar diserang lebih dulu, dan keberatan yang diterima menjadi perubahan ADR.

    Contoh: "72 server mengandaikan 0,230 detik CPU per mulai; dari mana?"

    Dipelajari di Modul 16 · Proyek akhir: Tryout Nusantara

  • titik balik sagajuga: pivot, titik balik

    Langkah saga yang sesudahnya saga hanya boleh maju: langkah berikutnya diselesaikan dengan coba ulang idempoten, bukan dikompensasi.

    Contoh: sesudah tagihan berhasil, "beri akses" dicoba ulang sampai berhasil, bukan di-refund.

    Dipelajari di Modul 09 · Pola arsitektur

  • titik impas

    Banyak pemakaian yang membuat biaya per pemakaian sama dengan biaya server tetap. Di atasnya server lebih murah, asalkan bebannya cukup rata untuk ditampung.

    Contoh: server $50 per bulan lawan fungsi 200 ms 512 MB: ±26,7 juta permintaan.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • token bertanda tanganjuga: token HMAC, JWT

    Token sesi yang dibawa klien dan diverifikasi dengan tanda tangan (HMAC atau kunci publik), sehingga mesin mana pun yang memegang kunci bisa memeriksanya tanpa bertanya ke penyimpanan bersama. Harganya, token sulit dicabut sebelum kedaluwarsa.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • TTLjuga: time to live

    Batas umur entri cache: sesudah itu entri dianggap kedaluwarsa. TTL mengatur kesegaran, bukan kapasitas, dan menjamin kebasian maksimum.

    Dipelajari di Modul 03 · Caching

  • two-phase commitjuga: 2PC

    Protokol transaksi terdistribusi: semua peserta memegang kunci sampai koordinator memutuskan commit. Memberi isolasi, tetapi peserta bisa terkunci tanpa batas bila koordinator mati di antara dua fase.

    Contoh: payment gateway pihak ketiga tidak akan ikut 2PC-mu.

    Dipelajari di Modul 09 · Pola arsitektur

  • uji kekacauanjuga: chaos engineering, game day

    Kebiasaan menyuntikkan kegagalan secara sengaja dan terkendali (latensi, galat, mesin mati) untuk membuktikan batas waktu, coba ulang, pemutus, dan degradasi bekerja sebelum insiden sungguhan.

    Contoh: uji beban dengan tanda tangan Storage 50 ms lebih lambat.

    Dipelajari di Modul 08 · Keandalan

  • upcasting

    Mengubah kejadian berskema lama menjadi skema baru saat dibaca, sehingga log yang tidak boleh diubah tetap bisa diputar ulang.

    Contoh: kejadian versi 1 dengan kunci "nama" dinaikkan menjadi versi 2 dengan kunci "peserta".

    Dipelajari di Modul 09 · Pola arsitektur

  • URL bertanda tanganjuga: signed URL, presigned URL

    URL berisi izin terbatas waktu yang ditandatangani server dengan HMAC atas jalur dan kedaluwarsa, lalu diverifikasi dengan perbandingan waktu-konstan.

    Contoh: TTL = sisa waktu attempt + 600 detik agar gambar soal tidak kedaluwarsa di tengah ujian.

    Dipelajari di Modul 12 · Cloud, *serverless*, dan *edge*

  • utang teknisjuga: technical debt

    Jalan pintas yang mempercepat rilis pertama tetapi membuat setiap perubahan berikutnya membayar "bunga" sampai dibayar. Paling berguna bila setiap utang dicatat dengan dampak terukurnya.

    Contoh: cache isi paket memangkas ±1,6 dari 1,95 MB egress per attempt.

    Dipelajari di Modul 15 · Biaya dan evolusi arsitektur

  • variable bytejuga: varint, kompresi celah

    Kompresi posting list: id terurut disimpan sebagai selisih (celah), lalu setiap celah dikodekan 7 bit data per byte dengan bit tertinggi sebagai penanda "masih ada byte".

    Contoh: celah 7 menjadi satu byte 07; 300 menjadi ac02.

    Dipelajari di Modul 10 · Struktur data probabilistik dan pencarian

  • WAFjuga: web application firewall

    Penyaring permintaan HTTP di edge yang menolak pola berbahaya dan menjalankan aturan rate limit sebelum permintaan sampai ke origin. Penghitungnya kasar dan tidak selalu dibagi antarpusat data, jadi kuota tepat tetap di API.

    Contoh: satu aturan per IP dengan periode 10 detik di paket gratis penyedia.

    Dipelajari di Modul 13 · Keamanan arsitektur

  • WALjuga: write-ahead log

    Log tempat basis data mencatat setiap perubahan sebelum menerapkannya. Replika memutar ulang WAL, dan posisinya di log (LSN) menunjukkan sejauh mana sebuah simpul sudah menyusul.

    Dipelajari di Modul 04 · Basis data dalam skala

  • WebSocket

    Saluran dua arah berbingkai yang diawali permintaan HTTP Upgrade (RFC 6455). Satu koneksi terbuka per klien, terikat ke satu proses server.

    Contoh: memulai ulang server WebSocket memutus semua kliennya sekaligus.

    Dipelajari di Modul 11 · Sistem waktu nyata

  • X-Forwarded-For

    Header HTTP tempat setiap proxy menambahkan alamat yang dilihatnya di sebelah kanan. Entri paling kiri bisa dipalsukan klien, jadi IP klien dibaca dari kanan, melewati proxy tepercaya saja.

    Contoh: dari 6.6.6.6, 203.0.113.5, 10.0.0.9 dengan proxy tepercaya 10.0.0.9, IP kliennya 203.0.113.5.

    Dipelajari di Modul 02 · Dari satu server ke banyak

  • zero trust

    Prinsip arsitektur (NIST SP 800-207) yang tidak memercayai lokasi jaringan: setiap komunikasi diamankan, akses diberikan per sesi dan per sumber daya, dan autentikasi serta otorisasi ditegakkan sebelum setiap akses.

    Contoh: API tetap memeriksa token setiap permintaan walaupun datang dari Worker milik sendiri.

    Dipelajari di Modul 13 · Keamanan arsitektur