Nguyen Le PhongNguyen Le Phong

Bài viết

Blog

Một góc đọc dễ vào về software architecture, source code, AI và cách team phần mềm làm việc. Mỗi bài đi từ tình huống thật, giải thích bằng ngôn ngữ gần gũi, giữ lại những thuật ngữ quan trọng để người mới không bị ngợp và người đi làm lâu vẫn tìm được một góc nhìn có thể áp dụng ngay.

Bài mới để đọc tiếpTrang 12/23

204 bài viết

AI & Future of Work

Khi AI chạm vào việc hằng ngày, ý tưởng bắt đầu nở ra

Khi AI đủ thực tế để bước vào những việc nhỏ trong văn phòng, ý tưởng không còn nằm ở các bản demo xa xôi. Chúng xuất hiện ngay trong onboarding, hỗ trợ khách hàng, đối chiếu tài chính, chuẩn bị họp, đọc tin tức, kiểm tra tài liệu và rất nhiều workflow lặp lại khác. Bài viết là một góc nhìn bình tĩnh về cách nhận ra các điểm nghẽn ấy, cải tiến từng chút và giữ con người ở phần phán đoán quan trọng.

7 phút đọc
Source Code & Software Architecture

Event-Driven Architecture: khi service bớt gọi trực tiếp và hệ thống dễ thở hơn

Khi service nào cũng gọi trực tiếp service khác, một dependency chậm có thể kéo cả checkout đi xuống. Bài này giải thích event-driven architecture bằng cách gần gũi: khi nào nên dùng sync hay async, command khác event ra sao, message broker thật sự bảo đảm điều gì, choreography và orchestration khác nhau thế nào, và lúc nào events chỉ làm hệ thống rối hơn.

15 phút đọc
Source Code & Software Architecture

Database-per-Service, Saga và Eventual Consistency: dữ liệu sống thế nào trong distributed systems

Tách code thường dễ hơn tách dữ liệu. Khi mỗi service cần sở hữu dữ liệu riêng, team phải đối mặt với shared database, eventual consistency, dual-write bug, outbox, saga, CQRS và event sourcing. Bài này đi qua những lựa chọn đó bằng ví dụ thực tế, để bạn hiểu trade-off trước khi hệ thống phân tán bắt đầu làm mọi thứ khó hơn.

14 phút đọc
Source Code & Software Architecture

Timeout, Retry, Circuit Breaker và Idempotency: bộ kỹ năng sống còn của distributed systems

Một lời gọi ra khỏi process có thể chậm, lỗi, timeout, hoặc chạy hai lần. Đó không phải chuyện hiếm, mà là đời sống bình thường của distributed systems. Bài này gom lại những kỹ thuật giúp hệ thống bền hơn: timeout, retry với backoff và jitter, idempotency, circuit breaker, bulkhead, graceful degradation và observability.

14 phút đọc
Source Code & Software Architecture

Scale database theo đúng thứ tự: Index, Read Replica, Cache rồi mới tới Sharding

Khi traffic tăng, database thường là nơi kêu cứu đầu tiên. Nhưng không phải cứ chậm là lao vào sharding. Bài này đưa ra một nấc thang thực tế để scale data layer: đo trước, thêm index, dùng read replica, cache đúng chỗ, hiểu replication lag và chỉ đụng tới partitioning hoặc sharding khi thật sự đã đến lúc.

15 phút đọc
Source Code & Software Architecture

Observability ở quy mô lớn: Logs, Metrics, Traces và SLO giúp mình thấy gì

Khi một request đi qua nhiều service, không còn một log file duy nhất để kể toàn bộ câu chuyện. Bài này giải thích observability theo cách dễ nắm: metrics cho biết hệ thống đang khỏe hay không, logs kể chuyện chi tiết, traces nối các bước lại với nhau, còn SLO giúp team nói về reliability bằng một ngôn ngữ rõ ràng hơn.

16 phút đọc