Phần 5: Chuyển đổi Schema EAV — Cái bẫy lớn nhất của Magento

Cấu trúc EAV schema chính là lý do khiến phần lớn các dự án chuyển đổi khỏi Magento chuốc lấy thất bại. Nhìn từ bên ngoài, nó có vẻ dễ xơi: dữ liệu của sản phẩm bị băm ra rải rác ở catalog_product_entity, catalog_product_entity_varchar, catalog_product_entity_int, catalog_product_entity_decimal, catalog_product_entity_datetime, và catalog_product_entity_text. Sáu cái bảng, viết một cái job ETL đơn giản, làm một cuối tuần là xong. Nhưng rồi bạn phát hiện ra rằng attribute_id = 75 mang ý nghĩa “tên sản phẩm” (product name) trong cái database của bạn, nhưng nó lại mang nghĩa “màu sắc” (color) trong cái database trên môi trường staging. Mỗi một mã ID thuộc tính (attribute ID) được sinh ra tự động ngay tại thời điểm cài đặt (install time) và nó hoàn toàn khác biệt giữa các môi trường với nhau. Bất kỳ script ETL nào dám cả gan gán cứng (hardcode) các mã attribute ID này sẽ lập tức đẻ ra một đống dữ liệu rác bẹp dí (corrupted data) khi mang lên chạy ở production. ...

6 tháng 5, 2026 · 14 phút · Lê Tuấn Anh

Sharding Cơ Sở Dữ Liệu Trong Go — TiDB, PostgreSQL & Bể Kết Nối (Connection Pools)

Điều kiện tiên quyết: Đây là Phần 4 của Khóa Học System Design. Lội lại Phần 3: Chiến Lược Caching để ngấm mớ luật lệ tầng cache trước khi mò xuống vũng lầy lưu trữ (storage). Answer-first: Đập vụn DB (Database sharding) là màn phân phát dữ liệu dạt sang hai bên sườn (horizontally) rải đều ra mấy cái mảnh vỡ độc lập (independent partitions/shards) bám theo một cái chìa khóa dẫn đường (shard key), cốt để xoa dịu cái màn dẫm đạp chửi bới nhau lúc ghi dữ liệu (reducing write contention) và mở đường cho dung lượng phình to tỷ lệ thuận đâm lủng trần nhà (linear storage growth). Chấm mút chọn sai cái shard key là đẻ ra ngay mấy cái ổ kiến lửa (hot spots) lòi le, hậu quả còn bết bát thảm khốc hơn cả việc chẳng thèm sharding. ...

18 tháng 6, 2026 · 18 phút · Tanh

Đồng Bộ Tồn Kho Thời Gian Thực: Kafka, CDC & Redis cho E-commerce

Đồng Bộ Tồn Kho Thời Gian Thực Là Gì? Answer-first: Đồng bộ tồn kho thời gian thực (Real-time inventory synchronization) là quá trình lan truyền các thay đổi về số lượng hàng trong kho từ hệ thống gốc (database) tới tất cả các kênh bán hàng — web storefront, ứng dụng mobile, WMS, ERP — với độ trễ chưa tới một giây (sub-second). Thay vì phải phụ thuộc vào các tác vụ batch ETL chạy mỗi giờ, một pipeline CDC + Kafka sẽ stream mọi thay đổi tồn kho được commit thành một sự kiện (event), qua đó loại bỏ hoàn toàn tình trạng bán vượt mức (overselling) cũng như tránh hiển thị sai số lượng hàng hóa. ...

8 tháng 6, 2026 · 15 phút · Tuan Anh