Writing
Notes on Go, backend engineering, system design and the tools I use, newest first.
2025
- IaaS - PaaS - SaaS - FaaS - BaaS
SaaS — software as a service Trong trường hợp này, nhà cung cấp cloud lưu trữ các ứng dụng và cung cấp chúng cho người dùng cuối qua Internet. SaaS là tầng cao nhất trong mô hình…
3 min readSystem Design - Three-Tier Architecture
Trong phát triển phần mềm, đặc biệt là các hệ thống web và enterprise application, Three-tier Architecture (kiến trúc 3 lớp) là một mô hình kiến trúc phổ biến, được sử dụng rộng…
2 min readSystem Design
2024
- Clean Architecture & Hexagonal ArchitectureSeries: Microservice with Clean & Hexagonal Architecture, DDD, SAGA, Outbox...
- Circuit Breakers và Cách các kĩ sư Grab thiết kế hệ thống phản ứng lỗi (Phần 2)
Bài viết này là phần thứ hai của loạt bài về Thiết kế Hệ thống Khả năng phản hồi lỗi. Ở Phần 1, chúng ta đã xem xét các trường hợp sử dụng để triển khai circuit breaker. Trong…
14 min readSystem Design - Đo Lường Độ Trễ trong Hệ Thống: P95 và P99 là gì ?
Tiêu chí đo lường độ trễ (latency) là một khía cạnh quan trọng trong việc đánh giá hiệu suất của một hệ thống. Trong bài viết này, chúng ta sẽ tìm hiểu về hai chỉ số thường được…
2 min readSystem Design - Cài đặt Postgres trên AWS EC2 Ubuntu
Tải và cài đặt các package mới nhất có sẵn trên hệ thống sudo apt-get update -y Trong đó: sudo (superuser do): Lệnh sudo được sử dụng để thực hiện các lệnh với đặc quyền superuser…
5 min readSystem Design, SQL, Ubuntu
2023
- Circuit Breakers và Cách các kĩ sư Grab thiết kế hệ thống phản ứng lỗi (Phần 1)
Bài đăng này là phần đầu tiên trong một loạt hai phần về Circuit Breakers và Retries, nơi chúng tôi sẽ giới thiệu và so sánh hai khái niệm thường được sử dụng này. Đối với Phần 1…
13 min readSystem Design - Cách sử dụng Golang WaitGroup hiệu quả
Quản lý concurrency trong Golang? WaitGroup là công cụ hỗ trợ bạn đồng bộ hóa nhiều goroutine. Bài viết này hướng dẫn bạn những điều cơ bản về cách sử dụng WaitGroup một cách hiệu…
17 min readSystem Design, Golang - Concurrency vs. Parallelism — Giới thiệu ngắn gọn6 min readSeries: Golang NotebookSystem Design
- Data Race Patterns trong Go
Uber đã sử dụng Golang (gọi tắt là Go) làm ngôn ngữ lập trình chính để phát triển các dịch vụ microservices . Monorepo Go của chúng họ bao gồm khoảng 50 triệu code (và vẫn đang…
6 min readSystem Design, Golang