Stateless service xử lý request tiếp theo ở bất kỳ instance tương đương nào nhờ state bên ngoài; stateful service sở hữu durable/session state ảnh hưởng placement, scaling và recovery.
Stateless service xử lý request tiếp theo ở bất kỳ instance tương đương nào nhờ state bên ngoài; stateful service sở hữu durable/session state ảnh hưởng placement, scaling và recovery.
| Câu hỏi | Câu trả lời thực tế |
|---|---|
| Dùng khi nào? | Trong một tình huống thực tế nhỏ, hãy vẽ các thành phần, theo dõi một request hoặc quyết định từ đầu đến cuối và đánh dấu bằng chứng tạo ra ở từng bước. |
| Cần làm gì? | Phân loại API, database, cache và WebSocket session; restart một instance rồi giải thích state nào tồn tại, di chuyển hoặc mất. |
| Biết là đúng bằng cách nào? | Người khác có thể làm lại từ ghi chú của bạn và mỗi nhận định quan trọng đều có output, số đo, kết quả truy vấn hoặc artifact để review. |
| Lỗi hay gặp? | Lỗi phổ biến là chọn công cụ hoặc pattern trước khi nêu rõ bài toán, ràng buộc và cách đo thành công. |
flowchart LR
A[Câu hỏi] --> B[Service stateful và stateless]
B --> C[Ví dụ nhỏ]
C --> D[Bằng chứng]
Điểm quan trọng của sơ đồ là không dừng ở định nghĩa: hãy nối khái niệm với một ví dụ nhỏ và bằng chứng có thể quan sát.
Trong một tình huống thực tế nhỏ, hãy vẽ các thành phần, theo dõi một request hoặc quyết định từ đầu đến cuối và đánh dấu bằng chứng tạo ra ở từng bước.
Trước khi làm, hãy viết dấu hiệu thành công. Sau đó chỉ thay đổi một yếu tố, quan sát kết quả và ghi lại assumption. Với Service stateful và stateless, cách này giúp tách điều bạn biết khỏi điều bạn chỉ đang đoán.
Mục tiêu: Phân loại API, database, cache và WebSocket session; restart một instance rồi giải thích state nào tồn tại, di chuyển hoặc mất.
Kết quả mong đợi: Người khác có thể làm lại từ ghi chú của bạn và mỗi nhận định quan trọng đều có output, số đo, kết quả truy vấn hoặc artifact để review.
Lỗi phổ biến là chọn công cụ hoặc pattern trước khi nêu rõ bài toán, ràng buộc và cách đo thành công.
Khi kết quả khác dự đoán, đừng đổi nhiều thứ cùng lúc. Kiểm tra input, version, environment, quyền truy cập và log trước; sau đó lặp lại từ ví dụ nhỏ nhất.
Mở resource hoặc repository đi kèm ở cuối trang khi bạn cần implementation đầy đủ. Hãy kiểm tra version hiện hành trước khi dùng command trong dự án thật.
Học thiết kế hệ thống như một chuỗi quyết định, dùng nền tảng học tập nhỏ làm ví dụ xuyên suốt.
Functional requirement mô tả hành vi user cần; non-functional requirement nêu chất lượng và ràng buộc như latency, accessibility, security, capacity và recovery.
High-level design giải thích boundary, data flow, dependency và tradeoff lớn; low-level design mô tả component, interface, data model, algorithm và cách xử lý failure.