Writing

Notes on Go, backend engineering, system design and the tools I use, newest first.

Tagged System DesignShow everything

2025

  1. 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
  2. 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

  1. Clean Architecture & Hexagonal Architecture
    Series: Microservice with Clean & Hexagonal Architecture, DDD, SAGA, Outbox...
  2. 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
  3. Đ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
  4. 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

  1. 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
  2. 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
  3. Concurrency vs. Parallelism — Giới thiệu ngắn gọn
    6 min readSeries: Golang NotebookSystem Design
  4. 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