Skip to content

HARRY-18 — Glossary — thuật ngữ Backend EN ↔ VN

Glossary — thuật ngữ Backend EN ↔ VN ​

Tra cứu nhanh. Thuật ngữ giữ tiếng Anh (đó là cách chúng xuất hiện trong docs, log, và phỏng vấn), giải thích ngắn bằng tiếng Việt + con trỏ tới giai đoạn học sâu. Ưu tiên các từ mà FE engineer chưa từng gặp hoặc hiểu khác ở phía client.

Cách dùng: Ctrl+F từ khoá. Cột cuối là nơi đào sâu.


A. HTTP & API ​

Thuật ngữNghĩa ngắnHọc ở
IdempotentGọi 1 lần hay 10 lần cho cùng kết quả trên server. GET/PUT/DELETE có, POST thì không (trừ khi tự làm)GĐ03, GĐ09
Idempotency keyKhoá client gửi kèm POST để server nhận ra request lặp và không xử lý hai lầnGĐ09
Safe methodMethod không đổi trạng thái server (GET, HEAD)GĐ03
PreflightRequest OPTIONS trình duyệt tự gửi trước request "không đơn giản", để hỏi CORSGĐ03
Content negotiationClient và server thoả thuận định dạng qua Accept / Content-TypeGĐ03
ETag"Vân tay" của response; client gửi lại If-None-Match → server trả 304 nếu chưa đổiGĐ09
Cursor paginationPhân trang bằng con trỏ tới bản ghi cuối, thay vì OFFSET. Ổn định khi dữ liệu đang thay đổiGĐ09
Rate limitingGiới hạn số request trong một khoảng thời gianGĐ09
Token bucketThuật toán rate limit: xô token đầy dần theo thời gian, mỗi request tiêu 1 tokenGĐ09
BackpressureTín hiệu "tôi đang quá tải, chậm lại" từ bên nhận tới bên gửiGĐ03, GĐ21
WebhookAPI ngược chiều: bên thứ ba gọi vào server bạn khi có sự kiệnGĐ09
HMAC signatureChữ ký bằng khoá bí mật chung, dùng để xác minh webhook đến thật sự từ providerGĐ09
DTO (Data Transfer Object)Object định nghĩa hình dạng dữ liệu vào/ra ở biên APIGĐ07
OpenAPI / SwaggerĐặc tả contract của REST API dưới dạng máy đọc đượcGĐ07
SSE (Server-Sent Events)Server đẩy dữ liệu một chiều qua HTTP giữ mở — dùng cho streaming LLMGĐ22

B. Node.js runtime ​

Thuật ngữNghĩa ngắnHọc ở
Event loopVòng lặp Node dùng để xử lý I/O bất đồng bộ trên một luồngGĐ03
Microtask / macrotaskHai hàng đợi khác nhau; Promise (micro) luôn chạy trước setTimeout (macro)GĐ03
libuvThư viện C đứng sau event loop và thread pool của NodeGĐ03
Thread poolNhóm luồng nền cho việc chặn (fs, crypto, dns). Mặc định 4GĐ03
I/O-bound vs CPU-boundChờ đợi bên ngoài vs tính toán. Node giỏi cái đầu, tệ cái sauGĐ03
BlockingCode chiếm event loop, làm mọi request khác đứng chờGĐ03
StreamXử lý dữ liệu theo từng mảnh, bộ nhớ không đổi bất kể kích thướcGĐ03, GĐ12
BufferVùng nhớ nhị phân thô của NodeGĐ03
Worker threadsLuồng thật, để đẩy việc CPU-bound ra khỏi event loopGĐ03
Graceful shutdownThoát process có trật tự: ngừng nhận việc mới, xử nốt việc đang chạy, đóng tài nguyênGĐ09, GĐ21
ESM / CJSHai hệ module của Node (import vs require) — không trộn tự do đượcGĐ02
Transpile vs type-checkXoá type để chạy vs kiểm tra type. esbuild/tsx chỉ làm cái đầuGĐ02

C. Database ​

Thuật ngữNghĩa ngắnHọc ở
ACIDAtomicity, Consistency, Isolation, Durability — 4 đảm bảo của transactionGĐ05
TransactionNhóm thao tác "được ăn cả, ngã về không"GĐ05
Isolation levelMức cách ly giữa các transaction chạy song song (Read Committed, Serializable...)GĐ05
NormalizationTổ chức dữ liệu để mỗi sự thật chỉ lưu một chỗGĐ05
DenormalizationCố ý sao chép dữ liệu để đọc nhanh hơnGĐ05
Foreign keyRàng buộc trỏ tới khoá chính bảng khácGĐ05
IndexCấu trúc phụ giúp tìm hàng mà không quét toàn bảngGĐ05
B-tree / GIN / HNSWBa loại index: giá trị thông thường / tìm trong mảng-text / vectorGĐ05, GĐ23
Partial indexIndex chỉ trên tập con hàng (WHERE deleted_at IS NULL) — nhỏ và nhanh hơnGĐ14
Seq scanQuét tuần tự toàn bảng — dấu hiệu thiếu index (trên bảng lớn)GĐ05
EXPLAIN ANALYZELệnh cho biết Postgres thực sự chạy query thế nàoGĐ05
Query plannerBộ phận quyết định cách thực thi queryGĐ05
N+1 problem1 query lấy danh sách + N query lấy chi tiết từng phần tửGĐ05
MigrationThay đổi schema có phiên bản, commit vào gitGĐ05, GĐ14
Expand-contractKỹ thuật đổi schema không downtime qua 3 lần deployGĐ14
Connection poolTập connection dùng lại; mỗi connection Postgres là một process tốn RAMGĐ05, GĐ21
PgBouncerProxy gom connection, cho phép nghìn client dùng chung vài chục connection thậtGĐ21
Read replicaBản sao chỉ đọc, giảm tải cho primaryGĐ21
Replication lagĐộ trễ replica so với primary — nguồn bug "read-after-write"GĐ21
ShardingChia dữ liệu theo khoá sang nhiều DB. Biện pháp cuối cùngGĐ21
PartitioningChia một bảng thành nhiều bảng vật lý theo khoảng (thường theo thời gian)GĐ14
Soft deleteĐánh dấu đã xoá thay vì xoá thậtGĐ14
Optimistic / pessimistic lockingKiểm tra xung đột lúc ghi (version) vs khoá trước khi đọc (FOR UPDATE)GĐ05
SKIP LOCKEDBỏ qua hàng đang bị khoá — nền tảng của hàng đợi trên SQLGĐ09
VACUUM / bloatDọn hàng chết của Postgres; không dọn thì bảng phình và chậmGĐ14
PITRPoint-In-Time Recovery — khôi phục về đúng một thời điểmGĐ14
RPO / RTOMất tối đa bao nhiêu dữ liệu / mất tối đa bao lâu để khôi phụcGĐ14
tsvector / tsqueryKiểu dữ liệu full-text search của PostgresGĐ05
pgvectorExtension lưu và tìm kiếm vector embedding trong PostgresGĐ23

D. Security & Auth ​

Thuật ngữNghĩa ngắnHọc ở
Authentication (authN)Bạn là aiGĐ07
Authorization (authZ)Bạn được làm gìGĐ07, GĐ09
JWTToken tự chứa thông tin, có chữ ký, server không cần lưuGĐ07, GĐ09
ClaimMột trường dữ liệu bên trong JWT (sub, exp, role)GĐ07
Access / refresh tokenToken ngắn hạn để gọi API / token dài hạn để lấy access token mớiGĐ07, GĐ09
Token rotationMỗi lần refresh cấp token mới và huỷ token cũ; phát hiện được token bị đánh cắpGĐ09
Session (stateful)Server lưu phiên; thu hồi tức thì được, đổi lại phải tra store mỗi requestGĐ09
OAuth 2.0 / OIDCGiao thức uỷ quyền / lớp định danh xây trên nó (đăng nhập Google, GitHub)GĐ07
Authorization Code FlowLuồng OAuth chuẩn cho web serverGĐ07
PKCEPhần mở rộng OAuth chống chặn mã uỷ quyền, bắt buộc cho SPA/mobileGĐ07
RBAC / ABACPhân quyền theo vai trò / theo thuộc tínhGĐ07
Hashing vs encryptionMột chiều (mật khẩu) vs hai chiều (token cần đọc lại)GĐ09, GĐ14
argon2 / bcryptHàm băm mật khẩu chậm có chủ đích để chống dòGĐ09
SaltChuỗi ngẫu nhiên trộn vào mật khẩu trước khi băm, chống rainbow tableGĐ09
XSSChèn script chạy trong trang của bạnGĐ09, GĐ12
CSRFLừa trình duyệt người dùng gửi request kèm cookie của họGĐ09
SameSiteThuộc tính cookie kiểm soát việc gửi cookie khi request từ site khácGĐ09
SQL InjectionChèn SQL qua dữ liệu người dùng — chống bằng parameterized queryGĐ09
SSRFLừa server gọi tới địa chỉ nội bộ (metadata endpoint của cloud)GĐ09
Path traversalDùng ../ để thoát khỏi thư mục cho phépGĐ12
Magic bytesChữ ký nhị phân đầu file — cách duy nhất biết kiểu file thậtGĐ12
Timing attackSuy ra bí mật từ thời gian xử lý; chống bằng timingSafeEqualGĐ09
User enumerationSuy ra ai có tài khoản qua khác biệt của responseGĐ12
PIIPersonally Identifiable Information — dữ liệu định danh cá nhânGĐ14
Prompt injectionDữ liệu chèn vào prompt làm LLM đi chệch chỉ dẫn ban đầuGĐ22
OWASP Top 10Danh sách 10 nhóm lỗ hổng web phổ biến nhấtGĐ09

E. Kiến trúc & vận hành ​

Thuật ngữNghĩa ngắnHọc ở
StatelessInstance không giữ trạng thái riêng → scale ngang đượcGĐ21
Vertical / horizontal scalingMáy to hơn / nhiều máy hơnGĐ21
Load balancerPhân phối request, loại bỏ instance hỏngGĐ21
Sticky sessionGhim người dùng vào một instance — dấu hiệu app chưa statelessGĐ21
Amazon EC2Máy ảo AWS; người dùng quản OS, process và deployGĐ16
Amazon S3Object storage theo bucket + key; phù hợp lưu file/blobGĐ16
IAM role / policyDanh tính tạm của workload / quy tắc cho phép action trên resourceGĐ16
Amazon RDSDatabase quan hệ managed; AWS lo một phần vận hành hạ tầngGĐ16
AWS LambdaChạy handler theo event/request mà không quản serverGĐ16
Amazon CloudWatchLogs, metrics, dashboards và alarms cho hệ thống AWSGĐ16
VPC / subnetMạng riêng AWS / một dải IP trong một Availability ZoneGĐ16
Security GroupFirewall allowlist gắn với resource trong VPCGĐ16
Presigned URLURL có hạn dùng, cho phép một hành động cụ thể trên object S3GĐ12, GĐ16
Cloudflare WorkerCompute xử lý HTTP/event trên runtime Cloudflare; cấu hình bằng Wrangler và gọi service qua bindingGĐ17
BindingInterface runtime nối Worker với D1, R2, KV, Queue, secret hoặc service khácGĐ17
WranglerCLI và cấu hình quản lý local development, binding, môi trường và deploy WorkersGĐ17
R2Object storage của Cloudflare; bytes/file nằm trong bucket, metadata truy vấn thường nằm ở DBGĐ17
D1Database SQL serverless dựa trên SQLite, truy cập từ Worker qua bindingGĐ17
HyperdriveKết nối/pooling giúp Worker truy cập PostgreSQL hoặc MySQL hiện có từ mạng edgeGĐ17
Workers KVKey-value phân tán, cache tốt cho workload đọc nhiều; dữ liệu eventually consistentGĐ17
Durable ObjectWorker có định danh và storage riêng, dùng điều phối trạng thái giữa request/clientGĐ17
Cloudflare QueuesHàng đợi message cho Worker; delivery at-least-once nên consumer cần idempotentGĐ17
Workers Static AssetsStatic files deploy cùng Worker; request asset có thể được phục vụ mà không gọi Worker codeGĐ17
DNS proxied / DNS-onlyRecord đi qua Cloudflare proxy edge / chỉ phân giải DNS, không qua các tính năng proxy đóGĐ17
Cache RuleQuy tắc cache theo request/response; cần tránh cache response riêng tư hoặc theo userGĐ17
Workers LogsInvocation, custom logs, errors và telemetry để chẩn đoán WorkerGĐ17
Liveness / readinessCòn sống không (fail → restart) / sẵn sàng nhận traffic chưa (fail → ngừng gửi)GĐ15, GĐ18, GĐ21
Blue-green / canaryHai chiến lược deploy: đổi toàn bộ sang môi trường mới / thả dần % trafficGĐ15
Zero-downtime deployDeploy không rớt requestGĐ15, GĐ18, GĐ21
Cache-asideĐọc cache trước; miss thì đọc DB rồi ghi vào cacheGĐ09
Cache stampedeNhiều request cùng miss một lúc, đồng loạt đánh vào DBGĐ09
TTLThời gian sống của một mục cacheGĐ09
Queue / worker / jobHàng đợi việc / tiến trình xử lý / một đơn vị việcGĐ10
DLQ (Dead Letter Queue)Nơi chứa job lỗi hết số lần retry, để điều tra thủ côngGĐ10
Outbox patternGhi "ý định gửi việc" trong cùng transaction DB, relay đẩy sang queue sauGĐ10, GĐ11, GĐ20
At-least-once / exactly-onceGiao ít nhất một lần (phổ biến, cần idempotent) / đúng một lần (không tồn tại ở tầng giao nhận)GĐ10, GĐ19
Circuit breakerSau N lỗi thì ngừng gọi dependency một khoảng thời gian, fail nhanhGĐ09, GĐ21
BulkheadChia tài nguyên theo ngăn để một phần hỏng không kéo cả hệ thốngGĐ21
Load sheddingChủ động từ chối bớt request khi quá tải, để phần còn lại thành côngGĐ21
JitterThêm ngẫu nhiên vào thời gian retry, chống "thundering herd"GĐ21
Thundering herdNhiều client cùng retry một lúc, đánh sập service vừa hồi phụcGĐ21
Graceful degradationTính năng phụ chết nhưng tính năng chính vẫn chạyGĐ21
Noisy neighborMột tenant ngốn tài nguyên chung, làm ảnh hưởng các tenant khácGĐ21
Multi-tenancyMột hệ thống phục vụ nhiều khách hàng, dữ liệu phải cách lyGĐ25
Strong / eventual consistencyĐọc luôn thấy mới nhất / cuối cùng sẽ thấyGĐ21
CAP theoremKhi mạng bị chia cắt, phải chọn giữa nhất quán và khả dụngGĐ19, GĐ21
SagaChuỗi transaction cục bộ + hành động bù trừ, thay cho transaction phân tánGĐ19, GĐ20
Modular monolithMột tiến trình nhưng có ranh giới module rõ ràng — thường là lựa chọn đúngGĐ20, GĐ21
12-factor appBộ nguyên tắc viết app dễ deploy (config qua env, log ra stdout, stateless...)GĐ15
IaCInfrastructure as Code — mô tả hạ tầng bằng file (Terraform)GĐ15–GĐ18

F. Observability & Testing ​

Thuật ngữNghĩa ngắnHọc ở
Structured loggingLog dạng JSON có trường, máy truy vấn được — không phải chuỗi tự doGĐ09
Correlation / request idMột id xuyên suốt để nối mọi log của cùng một requestGĐ09
Distributed tracingTheo dấu một request qua nhiều service, thấy thời gian tiêu ở đâuGĐ19, GĐ21
SpanMột đoạn công việc trong traceGĐ21
p50 / p95 / p99Phân vị độ trễ. Luôn dùng thay cho trung bìnhGĐ21
RED / USERate-Errors-Duration cho service / Utilization-Saturation-Errors cho tài nguyênGĐ21
SaturationMức xếp hàng chờ tài nguyên — cảnh báo sớm hơn utilizationGĐ21
SLI / SLO / SLAChỉ số đo / mục tiêu nội bộ / cam kết với khách hàngGĐ21
Dead man's switchCảnh báo khi không nhận được tín hiệu (phát hiện cron chết im lặng)GĐ14
Test doubleVật thay thế dependency: stub / fake / spy / mockGĐ13
TestcontainersThư viện tự bật container DB thật cho test rồi dọn sạchGĐ13
Fixture / factoryDữ liệu test dựng sẵn / hàm tạo dữ liệu test có mặc định hợp lệGĐ13
Flaky testTest lúc pass lúc đỏ mà code không đổiGĐ13
CoverageTỉ lệ code được chạy qua khi test — không đo chất lượng testGĐ13
Load testBắn tải có kịch bản để tìm nút thắt (k6)GĐ13

G. AI Engineering ​

Thuật ngữNghĩa ngắnHọc ở
TokenĐơn vị văn bản LLM xử lý (~0,75 từ tiếng Anh); đơn vị tính tiềnGĐ22
Context windowSố token tối đa model nhận được trong một lần gọiGĐ22
Temperature / top_pTham số điều chỉnh độ ngẫu nhiên của outputGĐ22
System / user / assistantBa vai trò của message trong chat completionGĐ22
Structured outputÉp model trả JSON đúng schemaGĐ22
Function / tool callingModel đề xuất gọi hàm bạn khai báo, kèm tham sốGĐ24
EmbeddingVector số biểu diễn ngữ nghĩa của một đoạn textGĐ23
Cosine similarityĐộ đo mức giống nhau giữa hai vectorGĐ23
ChunkingCắt tài liệu thành đoạn vừa đủ để embed và truy hồiGĐ23
RAGRetrieval-Augmented Generation: tìm ngữ cảnh liên quan rồi mới hỏi LLMGĐ23
Hybrid searchKết hợp tìm theo từ khoá và tìm theo vectorGĐ23
RerankingDùng model mạnh hơn xếp lại kết quả sau bước truy hồi thôGĐ23
HNSW / IVFFlatHai loại index vector: chính xác hơn-tốn RAM / nhẹ hơn-kém chính xácGĐ23
Agent / ReAct loopLLM lặp: suy nghĩ → gọi tool → quan sát → lặp lạiGĐ24
MCPModel Context Protocol — chuẩn để LLM kết nối tool và nguồn dữ liệuGĐ24
EvalChấm điểm output LLM theo tiêu chí, thay cho assert cứngGĐ22, GĐ13
GuardrailsLớp kiểm soát input/output của LLM (chặn prompt injection, lọc nội dung)GĐ22
Thuật ngữNghĩa ngắnHọc ở
Document / key-value / wide-column / graphBốn họ NoSQL, mỗi họ hợp một hình dạng dữ liệuGĐ06
Embed vs referenceNhúng dữ liệu con vào document cha vs lưu id rồi ghép sauGĐ06
ObjectIdKhoá chính 12 byte của Mongo: timestamp + random + counter. Lộ thời gian tạoGĐ06
Aggregation pipelineChuỗi stage biến đổi dữ liệu của Mongo — tương đương SQLGĐ06
Quy tắc ESRThứ tự cột trong compound index Mongo: Equality → Sort → RangeGĐ06
TTL indexIndex tự xoá document hết hạn (chạy mỗi ~60s, không chính xác tới giây)GĐ06
Write / read concernGhi xong nghĩa là bao nhiêu node đã nhận / đọc thấy dữ liệu ở mức đảm bảo nàoGĐ06
Change streamLuồng sự kiện thay đổi collection, đọc từ oplog. Cần lưu resume tokenGĐ06
Inverted indexÁnh xạ term → danh sách document — nền tảng của mọi search engineGĐ11
Analyzer / tokenizer / stemmingChuỗi biến văn bản thành term. Index và query phải dùng cùng analyzerGĐ11
BM25Thuật toán chấm relevance mặc định của ES: TF bão hoà + IDF + độ dài fieldGĐ11
text vs keywordĐược analyze (để match) vs lưu nguyên (để filter/aggregate/sort)GĐ11
Query vs filter contextCó chấm điểm, không cache vs không chấm điểm, có cacheGĐ11
search_afterCursor pagination của ES, thay cho from/size bị chặn ở 10.000GĐ11
AliasTên trỏ tới index thật — cho phép reindex và đổi mapping không downtimeGĐ11
Index driftĐộ lệch giữa search index và nguồn sự thật. Phải đo và đối soátGĐ11
RRF (Reciprocal Rank Fusion)Gộp nhiều bảng xếp hạng bằng thứ hạng, né việc chuẩn hoá điểmGĐ11, GĐ23

I. Jobs, Cron & xử lý nền ​

Thuật ngữNghĩa ngắnHọc ở
Queue vs logJob tiêu thụ rồi biến mất (BullMQ) vs sự kiện giữ lại, replay được (Kafka)GĐ10
SKIP LOCKEDBỏ qua hàng đang bị khoá thay vì chờ — nền tảng của queue trên SQLGĐ10
Idempotency keyKhoá để nhận ra "việc này đã làm rồi" và không làm lạiGĐ09, GĐ10
Backoff + jitterGiãn thời gian retry theo cấp số nhân + ngẫu nhiên hoá, chống thundering herdGĐ10
lockDuration / stalled jobThời gian queue giữ job; quá hạn thì giao cho worker khác → chạy trùngGĐ10
Grace periodKhoảng orchestrator chờ giữa SIGTERM và SIGKILLGĐ10, GĐ18
Queue depth / job ageSố job chờ / tuổi job cũ nhất — hai chỉ số cảnh báo sớm quan trọng nhấtGĐ10
Leader electionChọn đúng một instance chạy một việc. Khoá Redis không đảm bảo tuyệt đốiGĐ10, GĐ19
Advisory lockKhoá cấp ứng dụng của Postgres, tự nhả khi session chếtGĐ10
Missed run / catch-upCron bị bỏ lỡ do downtime và chính sách chạy bùGĐ10
Job theo con trỏJob biết mình xử lý tới đâu, tự bù — bền hơn job theo lịchGĐ10

J. Kiến trúc, phân tán & Kubernetes ​

Thuật ngữNghĩa ngắnHọc ở
Dependency RuleMã nguồn chỉ được phụ thuộc vào phía trong, không bao giờ ngược lạiGĐ08
Port / adapterInterface do tầng trong sở hữu / hiện thực của nó ở tầng ngoàiGĐ08
Anemic vs rich domain modelClass chỉ có field, logic ở ngoài vs object tự bảo vệ bất biến của mìnhGĐ08
Value ObjectKiểu nhỏ, bất biến, tự validate, so sánh theo giá trị (Email, Money)GĐ08
Aggregate (root)Cụm object thay đổi cùng nhau, có một lối vào. Một transaction = một aggregateGĐ08
InvariantĐiều luôn phải đúng về mặt nghiệp vụ, bất kể trạng thái nàoGĐ08
Bounded ContextRanh giới nơi một từ có một nghĩa xác định — công cụ tìm ranh giới serviceGĐ20
Luật ConwayKiến trúc hệ thống sao chép cấu trúc giao tiếp của tổ chứcGĐ20
Monolith phân tánNhiều service nhưng phải deploy cùng lúc — tệ hơn cả monolith lẫn microserviceGĐ20
Strangler FigThay thế dần hệ cũ bằng hệ mới qua proxy, không có ngày "chuyển đổi lớn"GĐ20
Contract testingConsumer mô tả thứ mình cần; CI của provider chạy mọi contract trước khi deployGĐ20
BFF (Backend for Frontend)Service riêng cho mỗi loại client — thường là lần tách đầu tiên hợp lý nhấtGĐ20
Tám ngộ nhậnTám giả định sai về mạng mà mọi lập trình viên đều mắcGĐ19
PACELCPartition → A hay C; Else → Latency hay Consistency (nửa bạn sống cùng mỗi ngày)GĐ19
LinearizabilityMức nhất quán mạnh nhất: mọi thao tác như xảy ra tức thời tại một điểmGĐ19
Read-your-writesBạn luôn thấy được cái mình vừa ghi — mức tối thiểu người dùng chấp nhậnGĐ19
Clock skewĐồng hồ hai máy lệch nhau; wall clock không dùng để sắp thứ tự đượcGĐ19
Monotonic clockĐồng hồ chỉ tăng, dùng để đo khoảng, không so được giữa máyGĐ19
Lamport / vector clockĐồng hồ logic ghi lại quan hệ nhân quả thay vì thời gian thậtGĐ19
QuorumĐa số node. Hai nhóm không thể cùng có đa số → chống split-brainGĐ19
Raft / consensusThuật toán để N node đồng ý về một giá trị dù có node chếtGĐ19
Split-brainHai node cùng tưởng mình là leader, dữ liệu phân kỳGĐ19
Fencing tokenSố tăng dần kèm khoá; tài nguyên phía sau từ chối token cũ hơnGĐ19
Gray failureHealth check pass nhưng dịch vụ thực tế hỏng — chế độ hỏng khó phát hiện nhấtGĐ19
Cascading failureMột sự cố nhỏ lan thành sập toàn hệ qua retry và tồn đọngGĐ19, GĐ21
Retry amplification3 tầng × 3 lần retry = 27 request cho một request gốcGĐ19
2PCTwo-Phase Commit — transaction phân tán blocking, gần như không dùngGĐ19
CDCChange Data Capture — đọc WAL/oplog để phát sự kiện thay đổi dữ liệuGĐ11, GĐ20
Reconciliation loopVòng lặp so trạng thái thực với trạng thái mong muốn — triết lý cốt lõi của K8sGĐ18
Pod / Deployment / Service / IngressĐơn vị lập lịch / quản N bản sao / địa chỉ ổn định / cửa vào HTTPGĐ18
Startup / liveness / readiness probeBoot xong chưa / có treo không (→ restart) / nhận traffic được chưa (→ rút khỏi LB)GĐ18
requests vs limitsTài nguyên dành trước khi lập lịch vs trần cứng lúc chạyGĐ18
OOMKilled / CPU throttlingVượt memory limit → bị giết / vượt CPU limit → bị bóp, âm thầmGĐ18
preStop hookChạy trước SIGTERM; sleep vài giây để việc gỡ endpoint lan xong, tránh 502GĐ18
HPA / KEDATự scale theo CPU / theo metric tuỳ ý như độ sâu hàng đợiGĐ18
PodDisruptionBudgetSố pod tối thiểu phải sống khi cluster tự bảo trìGĐ18
GitOpsRepo git là nguồn sự thật; ArgoCD/Flux đồng bộ cluster theo repoGĐ18
Service meshSidecar proxy lo mTLS/retry/circuit breaker ở tầng hạ tầngGĐ18, GĐ20

K. Frontend Architecture & Browser Performance ​

Thuật ngữNghĩa ngắnHọc ở
Feature/vertical sliceNhóm UI, state và API adapter theo một năng lực nghiệp vụ, thay vì theo loại fileGĐ26
Application shellPhần giữ route, navigation, global layout, auth integration và loading/error boundary của frontendGĐ26
Design SystemTokens + component/pattern + docs + accessibility + ownership/release processGĐ26
Design tokenTên/value cho một quyết định thiết kế dùng lại giữa design tools, platform và UIGĐ26
Semantic tokenToken theo ý nghĩa như text.primary/action.primary, không theo giá trị palette hiện tạiGĐ26
Micro FrontendNhiều frontend app theo domain/team, có thể build/deploy độc lập và được compose thành một sản phẩmGĐ26
Module FederationCơ chế host/remote expose và load module từ build khác ở runtimeGĐ26
Host / remoteApp khởi tạo và nạp module / build expose module cho hostGĐ26
Remote entryArtifact/manifest entry giúp runtime tìm container và chunk của remoteGĐ26
Shared dependencyPackage mà host/remotes có thể resolve chung qua share scope; cần policy về version/singletonGĐ26
Design token format (DTCG)Format trao đổi token của Design Tokens Community Group; không phải W3C RecommendationGĐ26
Core Web VitalsBộ metric UX hiện hành: LCP (load), INP (interaction), CLS (layout stability)GĐ27
LCPThời điểm phần tử lớn nhất trong viewport được render; target good ≤2.5s ở p75GĐ27
INPĐộ trễ tương tác qua các thao tác trong session; target good ≤200ms ở p75GĐ27
CLSMức độ layout shift bất ngờ; target good ≤0.1 ở p75GĐ27
RUM / field dataMetric thu từ session người dùng thật; dùng để xem trải nghiệm theo route/device/releaseGĐ27
Lab dataĐo trong môi trường kiểm soát như Lighthouse/DevTools; dùng tái hiện và tìm nguyên nhânGĐ27
Web WorkerExecution context khác để chạy JS CPU-bound mà không thao tác DOM/main thread trực tiếpGĐ27
Transferable objectBuffer/resource chuyển quyền sở hữu giữa context; phía gửi không dùng được sau transferGĐ27
Service WorkerWorker do browser quản lý theo origin/scope để nhận event/fetch, cache và hỗ trợ offlineGĐ27
CacheStorageKho Request/Response do ứng dụng quản lý; strategy/expiry phải được code xử lýGĐ27
Offline-firstThiết kế app có trải nghiệm hữu ích khi không mạng, kèm quy tắc stale/sync/conflict rõ ràngGĐ27

Ba từ dễ nhầm nhất khi từ FE sang ​

  1. "Cache" — ở FE là bộ nhớ trong tab, mất khi reload. Ở BE là hạ tầng chia sẻ giữa mọi người dùng và mọi instance; cache sai một chỗ là rò rỉ dữ liệu người này sang người khác.
  2. "State" — ở FE là useState, thuộc về một người dùng, sống vài phút. Ở BE là hàng trong DB, thuộc về mọi người, sống nhiều năm, bị nhiều tiến trình sửa đồng thời.
  3. "Validation" — ở FE là trải nghiệm người dùng (báo lỗi sớm cho thân thiện). Ở BE là ranh giới bảo mật — kẻ tấn công không dùng form của bạn, họ dùng curl.

Học bằng cách build. Chứng minh, đừng tin.

Đồng bộ tiến độ

Đăng nhập trực tiếp để tiếp tục học trên desktop và PWA.