Skip to content

🔤 Glossary — คำศัพท์ทั่วทั้งเล่ม

วัตถุประสงค์: Fallback สำหรับคนอ่านนอก VitePress (GitHub raw, IDE, พิมพ์ออกอ่าน) — ไม่มี tooltip ก็ยังเปิดดูได้

วิธีใช้: Ctrl+F หาคำ · ทุกบทควรลิงก์มาที่นี่ใน footer · ยังไม่ครบ — เป็น living document, เพิ่มเมื่อพบศัพท์ใหม่ใน review


A

  • ACID — Atomicity / Consistency / Isolation / Durability — คุณสมบัติ 4 อย่างของ transaction ใน RDBMS
  • Annotation (Java/Spring) — ป้ายกำกับเขียนนำหน้าด้วย @ เช่น @Component ใช้ "บอกใบ้" framework
  • API — Application Programming Interface — "หน้าบ้าน" ที่ให้คนอื่นเรียกใช้
  • API Gateway — ตัวกลางหน้าระบบที่ route request ไปหา service ต่างๆ + ทำ auth/rate limit/log
  • AAD (AES-GCM) — Additional Authenticated Data — ข้อมูลเสริมที่ AES-GCM ใช้ตรวจ integrity แต่ไม่เข้ารหัส
  • Annotation Processing — กระบวนการที่ compiler/framework อ่าน annotation แล้ว generate โค้ดหรือทำงานเพิ่ม
  • AsyncLocalStorage (Node.js) — กลไกเก็บ context ตาม async chain (เหมือน ThreadLocal ของ Java)
  • ABAC — Attribute-Based Access Control — ตรวจสิทธิ์จาก attribute หลายอย่าง (เก่งกว่า RBAC แต่ซับซ้อนกว่า)
  • Autowired (Spring) — annotation ที่บอก Spring ให้ inject bean ที่ตรง type เข้ามา

B

  • Backpressure — แรงดันย้อนกลับ — ผู้รับช้าทำให้ผู้ส่งต้องชะลอ (ไม่งั้น buffer ระเบิด)
  • Bean (Spring) — object ที่ Spring container จัดการ — สร้างให้ + inject ให้ + จัดการ lifecycle
  • BFF — Backend For Frontend — backend ที่สร้างเฉพาะให้ frontend หนึ่งตัวใช้ (mobile/web มี BFF ต่างกัน)
  • Bloom Filter — โครงสร้างข้อมูลความน่าจะเป็น ตอบ "อยู่ไหม" — บอก "ไม่แน่ใจมีหรือไม่มี" แต่ "ไม่มีแน่นอน"
  • Broker (message) — ตัวกลางรับ-ส่ง message ระหว่าง service เช่น Kafka, RabbitMQ
  • Bytecode (JVM) — code กึ่งแปล ที่ JVM รัน — javac คอมไพล์ .java เป็น .class (bytecode)

C

  • CAP — Consistency / Availability / Partition tolerance — distributed system เลือกได้ 2 ใน 3
  • CDC — Change Data Capture — เก็บการเปลี่ยนใน DB เป็น event stream (Debezium, etc.)
  • Circuit Breaker — pattern หยุดเรียก service ที่ไม่ตอบ เพื่อกัน cascading failure
  • CI/CD — Continuous Integration / Continuous Deployment — ระบบ build+test+deploy อัตโนมัติ
  • CLI — Command Line Interface — โปรแกรมที่ใช้ผ่าน terminal
  • Compaction (Kafka) — กลไกเก็บแค่ message ล่าสุดต่อ key ใน topic
  • Compile — แปลโค้ด → format ที่เครื่อง/runtime รันได้
  • Container — หน่วยรัน app ที่แยก isolation จาก host (Docker, Podman, containerd)
  • Container (Spring) — กล่องเก็บ object ที่ Spring จัดการ ดู Bean / IoC
  • Controller (Spring MVC) — class ที่รับ HTTP request — มี @Controller หรือ @RestController
  • Coupling — ความผูกพันระหว่าง class/module — coupling สูง = แก้ที่หนึ่งกระทบหลายที่
  • CRDT — Conflict-free Replicated Data Type — โครงสร้างข้อมูลที่ผสานกันได้เอง ไม่ต้อง consensus
  • CSP — Content Security Policy — header HTTP กัน XSS โดยจำกัด origin ของ script/style
  • CSRF — Cross-Site Request Forgery — โจมตีให้ผู้ใช้ส่ง request โดยไม่รู้ตัว
  • CQRS — Command Query Responsibility Segregation — แยก write path (command) กับ read path (query)

D

  • DDD — Domain-Driven Design — ออกแบบโดยให้ code สะท้อนภาษาของ domain
  • Dependency — สิ่งที่ของชิ้นหนึ่งต้องใช้ (lib/object อื่น)
  • DI — Dependency Injection — ฉีด dependency เข้าไปใน object แทนที่ให้มันหาเอง (กลไกหนึ่งของ IoC)
  • DLQ — Dead Letter Queue — queue/topic เก็บ message ที่ process ไม่สำเร็จ
  • DNS — Domain Name System — แปลงชื่อ → IP
  • Docker Compose — เครื่องมือรัน multi-container app จาก YAML เดียว
  • DTO — Data Transfer Object — object สำหรับส่งข้อมูลข้าม layer (controller ↔ service)

E

  • Embedded server (Spring Boot) — Tomcat ที่รวมเข้าไปใน jar — java -jar app.jar ก็ start server
  • Eventual Consistency — distributed system ที่สุดท้ายข้อมูลจะตรงกัน (แต่ไม่ทันที)
  • EOS — Exactly-Once Semantics — ส่งครั้งเดียวเป๊ะ ไม่หายไม่ซ้ำ
  • ETag — header HTTP ที่ระบุ version ของ resource เพื่อ cache validation
  • Event Sourcing — เก็บการเปลี่ยนแปลงเป็น event stream ไม่ใช่ state ปัจจุบัน

F

  • Fallacies of Distributed Computing — 8 ข้อเข้าใจผิดที่คนคิดเรื่อง network เช่น "network reliable"
  • Field injectionDI โดย annotate field ตรง — ไม่แนะนำเพราะ test ยาก
  • FK (Foreign Key) — คอลัมน์ใน table ที่อ้างถึง PK ของ table อื่น
  • Framework — ชุดเครื่องมือที่เรียกโค้ดเรา (Hollywood Principle) — เราเขียน plugin/handler

G

  • G1 / ZGC — Garbage Collector ของ JVM — G1 default, ZGC low-latency
  • GraalVMJVM ทางเลือกที่ทำ AOT (native image) ได้
  • gRPC — Google's RPC framework บน HTTP/2 + Protobuf

H

  • HATEOAS — Hypermedia As The Engine Of Application State — REST ระดับสูงสุดที่ response มี link ถึง next action
  • Health check — endpoint ที่ orchestrator (k8s, LB) ใช้ตรวจว่า service ยังทำงานไหม
  • Helm — package manager ของ Kubernetes
  • HMAC — Hash-based Message Authentication Code — ใช้ hash + secret key พิสูจน์ integrity
  • HLC — Hybrid Logical Clock — clock ผสม physical + logical ใช้ใน distributed system
  • HNSW — Hierarchical Navigable Small World — algorithm ค้นหา vector ใกล้เคียง (ใช้ใน vector DB)
  • HSTSHTTP Strict Transport Security — header บังคับ browser ใช้ HTTPS เท่านั้น

I

  • Idempotent (ไอ-เด็ม-โพ-เทนต์) — ทำซ้ำได้ผลลัพธ์เดิม — PUT /user/1 ส่ง 10 ครั้ง = ส่งครั้งเดียว
  • IDE — Integrated Development Environment — โปรแกรมที่ใช้เขียนโค้ด (IntelliJ, VS Code)
  • Idempotency-Key — header HTTP ที่ client ส่งให้ server เพื่อรู้ว่า request ซ้ำ
  • Immutable — เปลี่ยนค่าไม่ได้หลังสร้าง
  • Inbox pattern — กลไก idempotent consumer — เก็บ message ID ที่ process แล้วในตาราง
  • IoC — Inversion of Control — กลับด้านการควบคุม: framework สร้าง object แทนเราสร้างเอง
  • ISR (Kafka) — In-Sync Replicas — replica ที่ตามทัน leader
  • Istio — service mesh ที่นิยมใน Kubernetes

J

  • Jakarta EEnamespace ใหม่ (jakarta.*) ของ Java EE (เดิมคือ javax.*) ใช้ใน Spring Boot 3+
  • JIT — Just-In-Time compilation — JVM แปล bytecode → machine code ตอน runtime
  • JMM — Java Memory Model — กฎ memory visibility ระหว่าง thread
  • JSON — format ข้อมูล { "key": "value" }
  • JWTJSON Web Token — token format ที่ฝัง claim + sign — ใช้ stateless auth

K

  • K8s / Kubernetes — orchestrator container ข้ามเครื่อง
  • Kafka — distributed event log + streaming platform
  • KIP — Kafka Improvement Proposal — เอกสารข้อเสนอปรับปรุง Kafka
  • KMS — Key Management Service — บริการเก็บ + จัดการ encryption key
  • KRaft — Kafka Raft — โหมดจัดการ Kafka cluster ที่ใช้ Raft แทน ZooKeeper

L

  • Lag (Kafka) — ระยะที่ consumer ตามหลัง producer
  • Lamport Clock — logical clock ของ Leslie Lamport — counter เพิ่มทุก event
  • Layered architecture — Controller → Service → Repository
  • Library — โค้ดของคนอื่นที่เราเรียกใช้ (ตรงข้ามกับ Framework)
  • Linearizability — strongest consistency — ทุก op มี real-time order
  • Load balancer — กระจาย traffic ไปหลาย instance
  • LSM-tree — Log-Structured Merge Tree — โครงสร้าง storage engine (Cassandra, RocksDB)

M

  • MDC — Mapped Diagnostic Context — กลไกใส่ context (เช่น trace ID) ใน log
  • mTLS — mutual TLSTLS ที่ทั้ง client + server ยืน certificate กัน
  • MVCC — Multi-Version Concurrency Control — กลไก isolation ของ DB ที่เก็บหลาย version

N

  • NestJS — backend framework ของ TypeScript (DI + decorator + lifecycle pipeline)
  • NRT (C#) — Nullable Reference Types — กลไกเช็ค null ที่ compile time

O

  • Observability — ดูเข้าใจระบบจาก output (logs/metrics/traces) — 3 pillars
  • OIDC — OpenID Connect — layer auth บน OAuth2
  • OOM — Out Of Memory
  • OpenAPI — spec สำหรับอธิบาย REST API (เดิม Swagger)
  • Outbox pattern — เก็บ message ที่จะส่งใน table เดียวกับ business data (atomic) แล้ว worker เอาไปส่งทีหลัง

P

  • PACELC — extends CAP: ถ้า Partition → C or A, Else → Latency or Consistency
  • Partition (Kafka) — sub-log ใน topic ที่ scale ขนานได้
  • PII — Personally Identifiable Information — ข้อมูลระบุตัวบุคคล
  • PK (Primary Key) — คอลัมน์ที่ระบุ row แต่ละ row
  • Pod (k8s) — หน่วยเล็กสุดของ k8s — มี 1 หรือหลาย container
  • Pool (connection) — กลุ่ม connection ที่ reuse ได้ (HikariCP, pg pool)
  • Producer/Consumer — ผู้ส่ง/ผู้รับ message ใน broker
  • PromQL — query language ของ Prometheus
  • Protobuf — Protocol Buffers — binary serialization ของ Google
  • PV/PVC (k8s) — Persistent Volume / Persistent Volume Claim

Q

  • Quorum — จำนวนเสียงขั้นต่ำที่ต้องเห็นด้วยถึงจะ commit ใน distributed

R

  • RabbitMQ — broker แบบ traditional queue + flexible routing
  • Race condition — bug ที่เกิดเมื่อหลาย thread/process แข่งกันเข้าทรัพยากร
  • Raft — consensus algorithm (ง่ายกว่า Paxos)
  • RBAC — Role-Based Access Control — ตรวจสิทธิ์จาก role
  • RED method — Rate / Errors / Duration — 3 metrics ที่ดูใน service-level monitoring
  • Reactive — paradigm จัดการ async stream + backpressure (WebFlux, RxJS)
  • Repository (Spring Data) — interface ที่ Spring สร้าง implementation ให้สำหรับ DB access
  • Replica — copy ของ data ที่กระจายไปหลายเครื่อง
  • REST — สไตล์ออกแบบ API ผ่าน HTTP — resource + verb (GET/POST/PUT/DELETE)
  • Retry / Backoff — strategy เรียกซ้ำเมื่อ fail พร้อมหน่วงเวลาเพิ่มขึ้น
  • RF — Replication Factor — จำนวน copy ของ data
  • Routing key — key ที่ broker ใช้ตัดสินใจส่ง message ไปไหน
  • RPO/RTO — Recovery Point/Time Objective — เป้าหมาย DR

S

  • Saga — pattern จัดการ distributed transaction ด้วย local transaction + compensation
  • Schema Registry — service เก็บ schema ของ message (Avro/Protobuf) — ป้องกัน schema breaking
  • SCRUM — agile framework
  • Sidecarcontainer เสริมที่รันคู่ main container ใน pod เดียว
  • Singleton — design pattern: 1 instance ในระบบ — bean default ของ Spring
  • SLI/SLO/SLA — Service Level Indicator / Objective / Agreement
  • SOLID — 5 หลัก OOP: SRP, OCP, LSP, ISP, DIP
  • Spring Boot — Spring + auto-config + embedded server + starter dep
  • SSRF — Server-Side Request Forgery — โจมตีให้ server ของเหยื่อยิง request ภายในไปยัง internal target
  • Stateless — service ไม่เก็บ state ระหว่าง request (ทุก request พกมาเอง)

T

  • Tenant — ลูกค้า/องค์กรหนึ่ง ใน multi-tenant system
  • TLS — Transport Layer Security — encryption บน TCP (เดิมคือ SSL)
  • Topic (Kafka) — ชื่อกลุ่มของ event ที่ producer ส่งเข้า + consumer subscribe
  • Tracing (distributed) — track 1 request ข้ามหลาย service
  • Transaction — กลุ่ม operation ที่ทำเป็นชุด — atomic + isolated
  • TTL — Time To Live — เวลาก่อนข้อมูล expire
  • Two Generals Problem — ปัญหา impossibility ของ guaranteed delivery บน unreliable network

U

  • USE method — Utilization / Saturation / Errors — 3 metrics สำหรับ resource monitoring
  • UUID — Universally Unique Identifier — ID 128-bit สุ่ม

V

  • Vector clock — logical clock ที่เป็น array ของ counter (track causality)
  • Virtual thread (Java 21+) — lightweight thread ใหม่ของ JVM scale ได้มหาศาล
  • VitePress — static site generator (Vue + Vite) — engine ของหนังสือเล่มนี้

W

  • WAL — Write-Ahead Log — log ที่เขียนก่อน apply เพื่อ durability + recovery
  • WebFlux (Spring) — reactive web framework ใน Spring (non-blocking)
  • WCAG — Web Content Accessibility Guidelines — มาตรฐาน accessibility

X

  • XSS — Cross-Site Scripting — โจมตีให้ browser ของเหยื่อรัน script

Y

Z

  • Zero Trust — security model: ไม่เชื่อใครเลย ตรวจทุก request
  • ZooKeeper — coordination service ที่ Kafka เคยใช้ (ลบใน Kafka 4.0)

อยากเพิ่มคำ? — เปิด PR แก้ไฟล์นี้ + ระบุบทที่ใช้คำนั้นครั้งแรก

คำที่ใช้ใน 1 หมวดเฉพาะ — ใส่ใน <หมวด>/README.md ภายใต้หัวข้อ "ศัพท์ที่ใช้ในหมวดนี้" ไม่ต้องดันมาที่นี่