Writing

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

2024

  1. Các vấn đề đối với những Transaction thực thi đồng thời
    1 min readSeries: Database Edge Case - Các ví dụ bằng PostgreSQL
  2. Transaction là gì ?
    4 min readSeries: Database Edge Case - Các ví dụ bằng PostgreSQL
  3. Semantics

    Giới thiệu Các Garbage Collector có trách nhiệm theo dõi việc phân bổ heap memory, giải phóng các phân bổ không còn cần thiết và duy trì các phân bổ đang được sử dụng. Cách mà một…

    7 min read
  4. Tìm hiểu về Go Profiling

    Profiler là một công cụ phân tích hiệu suất, cung cấp các thông tin quan trọng về thực thi ở nhiều khía cạnh khác nhau, cho phép giải quyết vấn đề về performance , memory leaks…

    4 min readGolang
  5. 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
  6. Đ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
  7. 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. MongoDB GridFS

    Trong thời đại ngày nay, việc lưu trự những dữ liệu phi cấu trúc (unstructured data) như là aidio, video hay hình ảnh là một yêu cầu thiết thực và cực kỳ quan trọng. Tuy nhiên…

    8 min readNoSQL
  3. 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
  4. Channel trong Golang

    Bài đăng này chỉ ra cách các channel hoạt động trong Go và cách bạn có thể sử dụng chúng trong code của mình. Trong Go, channel là một cấu trúc lập trình cho phép chúng ta di…

    9 min readGolang