Glosarium AAT
Rujukan cepat istilah AAT (IF4031). Definisi di sini sengaja singkat dan boleh mengulang isi UTS_AAT; penjelasan lengkap ada di bagian yang di-link pada kolom ketiga (angka seperti 2.5 berarti bagian 2.5 di UTS_AAT). Istilah dengan tanda (P) adalah prasyarat yang tidak dijelaskan di materi mana pun, penjelasannya ada di bagian 1 UTS_AAT dan merupakan tambahan di luar materi kuliah. Cakupan saat ini: note 01 sampai 08. Istilah umum SWE/AI/Data ada juga di folder Glosarium-Teknis.
A. Dasar Aplikasi Terdistribusi dan Kualitas Sistem
| Istilah | Penjelasan singkat | Dijelaskan lengkap di |
|---|---|---|
| Aplikasi terdistribusi | Aplikasi dengan banyak proses di satu atau lebih node, berkomunikasi lewat infrastruktur, di lingkungan heterogen | 2.1 |
| Heterogen | Komponen berbeda platform dan bahasa | 2.1 |
| Node, cluster, replica (P) | Satu mesin/instance; sekumpulan node; salinan komponen atau data | 1.4 |
| IOPS | Jumlah operasi I/O per detik yang mampu ditangani storage | 2.1 |
| Throughput | Jumlah request yang diproses per satuan waktu | 2.1 |
| Latency / response time | Waktu yang dibutuhkan untuk memproses atau membalas request | 2.1 |
| Bandwidth (P) | Kapasitas maksimum jalur jaringan (bit/detik) | 1.1 |
| Load (beban) | Sesuatu yang memakai resource sistem (CPU, memory, network, I/O), diukur dari user/request konkuren, request per waktu, rasio write terhadap read | 2.1 |
| Scale up | Menambah kapasitas dengan hardware lebih kuat | 2.1 |
| Scale out | Menambah jumlah mesin atau instance | 2.1 |
| Redundancy | Duplikasi komponen agar sistem tetap jalan saat ada kegagalan | 2.1 |
| Resilient | Tetap berfungsi meski terjadi kegagalan | 2.1 |
| Cascading failure | Kegagalan satu komponen menjalar ke komponen lain | 2.1 |
| Fault isolation | Mengisolasi dampak kegagalan agar tidak menyebar | 2.1 |
| Single point of failure (P) | Satu komponen yang bila gagal menghentikan seluruh sistem | 1.4 |
| Law of Leaky Abstractions | Semua abstraksi non-trivial pada tingkat tertentu bocor (tidak menjamin semua yang seharusnya) | 2.1 |
| FLP Impossibility | Consensus tidak bisa dijamin deterministik pada sistem asynchronous jika satu proses bisa gagal | 2.1 |
| Observability | Kemampuan memantau kondisi sistem untuk mendeteksi masalah dini | 2.1 |
| DevOps | Praktik yang menyatukan development dan operations | 2.1 |
| Middleware | Perantara antar komponen software untuk integrasi dan interoperability | 2.2 |
| IPC (interprocess communication) | Mekanisme komunikasi antar proses, mis. HTTP | 2.2 |
| Service | Bagian sistem yang di-deploy dan di-scale independen, berisi business logic dan interface | 2.2 |
| Stub / skeleton | Wakil lokal objek remote di client (stub) dan penerima panggilan di server (skeleton) | 2.2 |
| Naming Service (RMI Registry) | Direktori tempat server mendaftarkan objek dan client mencarinya | 2.2 |
| Utility computing | Model bayar sesuai pemakaian, dasar cloud computing | 2.2 |
| Three-tier / n-tier | Arsitektur aplikasi bertingkat, ciri enterprise application | 2.2 |
| Stateless | Tidak mengingat apa pun dari request sebelumnya; perilaku murni dari input dan kode | 2.3 |
| Stateful | Menyimpan state yang berubah akibat request | 2.3 |
| Pure function (analogi) | Fungsi tanpa state lokal, analog kode stateless | 2.3 |
| Cookie | Mekanisme menjaga identitas/sesi pada HTTP yang stateless | 2.3, 2.7 |
| Affinity | Keharusan user kembali ke server yang sama saat state tersimpan lokal | 2.3 |
B. Load Balancing dan Jaringan
| Istilah | Penjelasan singkat | Dijelaskan lengkap di |
|---|---|---|
| Load balancer | Membuat cluster tampak sebagai satu server dan membagi request ke worker | 2.4 |
| NAT load balancer | Bekerja di IP layer, meneruskan paket dan mengingat pemetaan client-server | 2.4 |
| Reverse proxy | Bekerja di HTTP layer, menampung request/response penuh; ada SSL termination, caching | 2.4 |
| Health check | Request periodik untuk memeriksa server hidup | 2.4 |
| Rolling update | Update server satu per satu sambil traffic diarahkan ke yang lain | 2.4 |
| DNS | Direktori terdistribusi hostname ke IP | 2.4 |
| Round-robin DNS | Satu domain mengembalikan beberapa IP, dibagikan acak atau bergiliran | 2.4 |
| Geographic load balancing | Mengarahkan user ke replica terdekat lewat IP geolocation | 2.4 |
| CDN | Jaringan server global yang meng-cache response di dekat client | 2.4 |
| IP Anycast | Banyak router mengiklankan IP sama via BGP; traffic ke yang terdekat | 2.4 |
| BGP (P) | Protokol antar Autonomous System untuk bertukar informasi rute | 1.1 |
| Autonomous System, ISP (P) | Kumpulan jaringan satu pengelola; penyedia akses Internet | 1.1 |
| IP address, port (P) | Alamat mesin; nomor pintu layanan di mesin | 1.1 |
| TCP, UDP (P) | TCP andal dan berurutan; UDP ringan tanpa jaminan | 1.1 |
| Socket (P) | Titik ujung komunikasi di program untuk jaringan | 1.1 |
| TTL (DNS) | Lama sebuah jawaban DNS boleh di-cache sebelum berubah | 2.4 |
| Distributed service discovery | Masalah client menemukan replica tanpa bottleneck pusat | 2.4 |
C. Server, I/O, dan Konkurensi
| Istilah | Penjelasan singkat | Dijelaskan lengkap di |
|---|---|---|
| C10K problem | Mendesain server yang menangani sekitar 10 ribu koneksi bersamaan | 2.5 |
| I/O bound | Waktu lebih banyak habis menunggu I/O daripada komputasi | 2.5 |
| CPU bound | Waktu lebih banyak habis untuk komputasi | 2.5 |
| Persistent connection | Koneksi HTTP yang tetap terbuka untuk beberapa request | 2.5 |
| Preforking / prethreaded | Membuat proses/thread di awal sebelum ada koneksi | 2.5 |
| Blocking I/O | Proses terblok sampai data siap dan tersalin | 2.5 |
| Non-blocking I/O | Langsung return EWOULDBLOCK bila data belum siap; proses polling | 2.5 |
| I/O multiplexing | Satu panggilan memantau banyak descriptor sekaligus | 2.5 |
| Signal-driven I/O | Kernel kirim SIGIO saat data siap dibaca | 2.5 |
| Asynchronous I/O | Kernel mengerjakan wait dan copy, notifikasi setelah selesai total | 2.5 |
| select / poll / epoll / kqueue | Mekanisme I/O multiplexing (epoll Linux, kqueue BSD) | 2.5 |
| Level-triggered | Notifikasi terus muncul selama masih ada data belum dibaca | 2.5 |
| Edge-triggered | Notifikasi hanya saat status berubah; harus baca semua data | 2.5 |
| Stack ripping | Melacak state eksplisit pada model event | 2.5 |
| Preemptive vs cooperative scheduling | Dijadwalkan paksa oleh sistem vs handler menyerahkan kontrol sendiri | 2.5 |
| MPM (Apache) | Multi-Processing Modules: prefork, worker, event | 2.5 |
| Nginx master/worker | Satu master untuk konfigurasi; worker event-driven menangani banyak koneksi | 2.5 |
| Process vs thread (P) | Program berjalan dengan memori sendiri vs alur eksekusi dalam process | 1.3 |
| Kernel space, system call (P) | Inti OS; cara program meminta layanan kernel | 1.3 |
| Context switch (P) | CPU berpindah dari satu process/thread ke lainnya | 1.3 |
| Stack memory (P) | Memori per thread untuk variabel lokal dan pemanggilan fungsi | 1.3 |
| Race condition (P) | Hasil bergantung urutan eksekusi thread yang tak terduga | 1.3 |
| Lock, lock contention (P) | Penjaga akses data bersama; banyak thread berebut lock | 1.3 |
| Callback (P) | Fungsi yang dipanggil nanti saat kejadian terjadi | 1.3 |
| Parsing (P) | Menguraikan teks/byte mentah jadi struktur | 1.1 |
| Event loop | Loop yang mengecek event lalu memanggil handler | 2.6 |
| Handler / watcher | Fungsi penanganan event / catatan minat terhadap event (libev) | 2.6 |
| libevent, libev, libuv | Library event loop di C; libuv untuk Node.js, portable | 2.6 |
| IOCP | I/O Completion Port, mekanisme async I/O Windows | 2.6 |
| asyncio | Library Python untuk concurrent programming dengan async/await | 2.6 |
| Coroutine | Objek yang dapat di-suspend dan dilanjutkan | 2.6 |
| Task (asyncio) | Coroutine yang dijadwalkan pada event loop | 2.6 |
run_in_executor | Memindahkan fungsi blocking ke thread pool agar loop tidak terblokir | 2.6 |
| Thread pool | Sekumpulan thread berjumlah terbatas yang dipakai ulang | 2.6 |
| Garbage collector (P) | Pembersih memori otomatis; “stop-the-world” menghentikan program sebentar | 1.3 |
| Goroutine (P) | Thread ringan milik bahasa Go | 1.3 |
D. API, RPC, dan Serialisasi
| Istilah | Penjelasan singkat | Dijelaskan lengkap di |
|---|---|---|
| API (library vs network) | Cara software dipakai software lain; network API dipanggil lewat jaringan | 2.7 |
| Ingress API vs internal API | Interaksi dengan pihak eksternal vs antar komponen sendiri | 2.7 |
| REST | Gaya API berbasis resource dan HTTP method | 2.7 |
| Resource-oriented vs command-oriented | Memodelkan state resource vs memanggil aksi | 2.7 |
| Idempotent | Request bisa diulang tanpa mengubah hasil akhir; semua method HTTP kecuali POST | 2.7 |
| HATEOAS | Response menyertakan link ke aksi lanjutan; client mengikuti link | 2.7 |
| HTTP request/response (P) | Terdiri dari baris awal, header, body | 1.1 |
| Serialisasi | Mengubah objek ber-reference jadi urutan byte | 2.7 |
| JSON, XML | Format data teks; JSON dengan [ ] dan { }, XML dengan tag | 2.7 |
| Circular reference | Dua objek saling merujuk; ditangani dengan ID | 2.7 |
| Session ID: random vs rich token | ID acak dengan lookup database vs token berisi informasi (perlu signed) | 2.7 |
| Secure, HTTPOnly, SameSite | Atribut cookie autentikasi | 2.7 |
| XSS, CSRF (P) | Serangan penyisipan script; serangan memalsukan request dari browser korban | 1.2 |
| SSO | Single Sign-On: proses signing token dipakai bersama banyak service | 2.7 |
| OAuth 2.0, OpenID Connect | Standar authorization; lapisan identitas di atasnya | 2.7 |
| Scope | Cakupan akses di OAuth | 2.7 |
| Bearer token | Token di header Authorization: Bearer <token> | 2.7 |
| JWT | Token self-encoded: header, payload (claim, mis. iss/exp), signature | 2.7 |
| TLS, HTTPS, mTLS (P) | Enkripsi koneksi; HTTP di atas TLS; TLS dua arah | 1.2 |
| Hash, HMAC, signature, Base64 (P) | Sidik jari data; hash berkunci; bukti keaslian; data biner sebagai teks | 1.2 |
| RPC | Memanggil prosedur proses lain seolah fungsi lokal | 2.7 |
| Granularitas | Besar kecilnya unit operasi API | 2.7 |
| Query-based API, OData | API dengan query, pagination, filtering, response shaping | 2.8 |
| GraphQL | RPC-based API dengan query dan mutation; “ask for what you want, get exactly that” | 2.8 |
| Schema, resolver (GraphQL) | Definisi tipe data; kode yang menjalankan tiap field | 2.8 |
| Deep / shallow fetch, response shaping | Ambil data bersarang atau dangkal; bentuk response sesuai query | 2.8 |
| Over-fetching / under-fetching | Data berlebih / kurang dari yang dibutuhkan | 2.8 |
| SPA | Single-Page Application | 2.8 |
| Apache Thrift | RPC library Facebook, polyglot, dengan IDL | 2.8 |
| IDL | Interface Definition Language: definisi data dan service bebas bahasa | 2.8 |
| Positional arguments / field numbering | Nomor eksplisit pada parameter dan field agar evolvable | 2.8 |
| TProtocol / TTransport | Format serialisasi / mekanisme pengiriman di Thrift | 2.8 |
| Processor, server (Thrift) | Glue hasil generate; pengendali yang menerima koneksi | 2.8 |
| Protocol Buffers (Protobuf) | Library serialisasi Google berbasis .proto | 2.8 |
| gRPC | RPC di atas Protobuf dan HTTP/2 | 2.8 |
| HTTP/2, binary framing, multiplexing | HTTP biner; banyak stream dalam satu koneksi | 2.8 |
| Unary / server streaming / client streaming / bidirectional | Empat pola komunikasi gRPC | 2.8 |
| Wire protocol (P) | Format byte persis di jaringan | 1.1 |
E. Microservices, Gateway, dan Mesh
| Istilah | Penjelasan singkat | Dijelaskan lengkap di |
|---|---|---|
| Monolith | Seluruh aplikasi dalam satu codebase dan satu deployment | 2.9 |
| Microservices | Suite service kecil, independen, berkomunikasi dengan mekanisme ringan | 2.9 |
| SOA | Service-Oriented Architecture: service course-grained, masih coupled lewat orkestrasi | 2.9 |
| Bounded context, DDD | Batas model domain; Domain Driven Design | 2.9, 2.12 |
| Single Responsibility Principle | Satu service satu tanggung jawab | 2.9 |
| Two-pizza rule, Bezos mandate | Tim cukup diberi makan dua pizza; semua tim wajib ekspos data lewat interface | 2.9 |
| Smart endpoints, dumb pipes | Kecerdasan di service, bukan di middleware | 2.9 |
| Designed for failure | Mengasumsikan service lain bisa gagal | 2.9 |
| Polyglot | Tiap service bebas memilih bahasa/stack | 2.9 |
| Eventual consistency | Data akhirnya konsisten, bukan seketika | 2.9 |
| Serialization overhead | Biaya transform data berulang antar service | 2.9 |
| Service interface versioning | Perbedaan versi API antar service | 2.9 |
| Retry storm | Gelombang retry yang membebani sistem | 2.9 |
| 12 Factor App | Dua belas prinsip aplikasi modern (codebase sampai admin processes) | 2.9 |
| OWASP Top 10, AAA (P) | Risiko keamanan web umum; authentication, authorization, accounting | 1.2 |
| API Gateway | Façade/reverse proxy untuk API publik: routing, composition, translation | 2.10 |
| Cross-cutting concern | Fungsi dibutuhkan hampir semua API (auth, rate limit, logging, tracing) | 2.10 |
| Rate limiter | Membatasi jumlah request dalam periode tertentu | 2.10 |
| Leaky bucket | Algoritma rate limiting yang mengizinkan burst sebelum throttling | 2.10 |
| Throttling (P) | Sengaja membatasi laju request | 1.4 |
| ADC | Application Delivery Controller: LB plus caching, compression, SSL offload | 2.10 |
| Traefik: entrypoints, providers, routers, services | Komponen gateway modern | 2.10 |
| Service mesh | Lapisan infrastruktur untuk komunikasi antar service dari satu control plane | 2.10 |
| Control plane vs data plane | Mengatur kebijakan (low volume, konsistensi) vs mengeksekusinya (high volume, speed) | 2.10 |
| Sidecar proxy | Proxy yang menyertai tiap service dalam service mesh | 2.10 |
| Istio, Envoy, Linkerd | Implementasi service mesh dan data plane-nya | 2.10 |
| Strangler pattern | Mengganti monolith bertahap dengan microservice baru | 2.12 |
| Aggregator / proxy / chained / branch / shared resource pattern | Pola composition microservices | 2.12 |
| Database per service / shared database | Pola database microservices | 2.12 |
| CQRS | Memisahkan jalur command (write) dan query (read) | 2.12 |
| Saga | Transaksi per service dengan compensating transaction | 2.12 |
| Compensating transaction | Langkah pembatal efek transaksi sebelumnya | 2.12 |
| Choreography vs orchestration (Saga) | Tanpa koordinator (event) vs satu coordinator | 2.12 |
| Two-phase commit (2PC) (P) | Protokol agar semua peserta commit atau batal serentak | 1.4 |
| Foreign key, normalisasi (P) | Lihat 14_Relational_Data_Model | 1.4 |
| Circuit breaker | Memutus panggilan ke service bermasalah agar gagal cepat | 2.12 |
| Blue-green / canary / red-black deployment | Deployment bertahap dengan dua environment atau versi uji | 2.12 |
| Service registry / discovery (Eureka) | Direktori lokasi instance service aktif | 2.12 |
| Chattiness, fan-out | Satu request edge menjadi banyak request downstream | 2.12 |
| Service Hosed | Satu dependency lambat memblokir semua thread | 2.12 |
| Hystrix, Ribbon, Archaius, Servo, EVCache, Karyon | Library NetflixOSS (resiliency, LB, properties, metrics, cache, server) | 2.12 |
| Client-side smart load balancer | LB di sisi caller yang memperhitungkan kondisi instance | 2.12 |
| Sidecar pattern (Prana) | Komponen pendamping yang memberi akses homogen ke platform services | 2.12 |
| RxNetty, ReactiveX | Framework reaktif non-blocking | 2.12 |
| Simian Army | Tool chaos engineering Netflix | 2.12 |
| Distributed tracing, centralized logging (ELK) | Jejak request lintas service; log terpusat (Logstash, Elasticsearch, Kibana) | 2.12 |
| Container, VM | Dijelaskan di materi berikutnya | 13_Computing_Platform_Deployment |
F. Messaging
| Istilah | Penjelasan singkat | Dijelaskan lengkap di |
|---|---|---|
| Messaging system | Fasilitas pertukaran pesan lewat broker, loosely coupled | 2.11 |
| Broker | Perantara pesan antara producer dan consumer | 2.11 |
| Producer, consumer | Pengirim dan pengambil pesan; consumer bisa pull atau push | 2.11 |
| Command / event / document / query message | Jenis pesan menurut tujuannya | 2.11 |
| Point-to-Point (PTP) | Satu pesan hanya untuk satu receiver lewat queue | 2.11 |
| Publish-Subscribe | Satu pesan untuk banyak subscriber | 2.11 |
| Durable subscriber | Subscriber yang tetap menerima pesan yang dipublish saat offline | 2.11 |
| Delivery guarantee | Exactly once, at least once, at most once, best effort | 2.11 |
| Publisher confirms | Ack dari broker ke producer | 2.11 |
| Manual ack | Consumer ack setelah selesai memproses | 2.11 |
| JMS, JMS provider | Spesifikasi Java untuk messaging; implementasinya | 2.11 |
| Administered objects | Connection factory dan destination yang dikelola administratif | 2.11 |
| JNDI (P) | Cara Java mencari objek terdaftar lewat nama | 1.3 |
| Message selector | Filter pesan (SQL92) yang dijalankan di broker | 2.11 |
| AMQP | Open standard messaging termasuk wire protocol (port 5672) | 2.11 |
| Exchange (direct, fanout, topic, header) | Penentu routing pesan ke queue | 2.11 |
| Routing key, binding | Nilai penentu queue tujuan; ikatan queue ke exchange | 2.11 |
| Queue (private/shared, durable/temporary) | Penampung pesan FIFO | 2.11 |
| Channel, connection, session (AMQP) | Koneksi logik, fisik, dan sepasang channel | 2.11 |
| RabbitMQ | AMQP broker: smart broker, dumb client | 2.11 |
| Apache Kafka | Platform pesan high throughput: smart client, dumb broker | 2.11 |
| Topic, partition, offset | Kategori data; pembagian topic; id urut pesan di partisi | 2.11 |
| Consumer group | Pesan diproses satu consumer per grup; grup berbeda dapat salinan | 2.11 |
| Leader / follower | Replika yang melayani read/write / replika cadangan | 2.11 |
| Zookeeper | Pengelola state dan koordinasi di cluster Kafka | 2.11 |
| Retention, replay | Pesan disimpan sampai masa tertentu sehingga bisa dibaca ulang | 2.11 |
| MQTT | Protokol pub/sub ringan untuk IoT (bukan message queue) | 2.11 |
| QoS 0/1/2 (MQTT) | Best effort; at least once; exactly once | 2.11 |
| RETAIN, Last Will and Testament | Simpan pesan terakhir topik; pesan otomatis bila client terputus tiba-tiba | 2.11 |
| Keep-Alive | Timer ping agar broker tahu client masih terhubung | 2.11 |
| IoT (P) | Perangkat fisik kecil yang terhubung jaringan | 1.4 |
RabbitMQ clustering / mirroring (ha-mode) | Node setara; queue hanya di node asal, bisa di-mirror | 2.11 |