Shopify vừa tiết lộ cách hãng thương mại điện tử này giải quyết một bài toán khó: ngăn hai người mua cùng lúc mua được sản phẩm cuối cùng trong kho. Vào Black Friday 2025, nền tảng đạt doanh số kỷ lục 5,1 triệu USD mỗi phút vào giờ cao điểm, và mọi giao dịch đều phải kiểm tra tồn kho theo thời gian thực.
Vấn đề với Redis
Trước đây, Shopify dùng Redis để tạm giữ sản phẩm ngay khi người mua bắt đầu thanh toán, tránh tình trạng bán vượt số lượng thực tế. Nhưng Redis và cơ sở dữ liệu tồn kho chính lại là hai hệ thống tách biệt, khiến việc đồng bộ dữ liệu phức tạp hơn khi công ty muốn hợp nhất mọi thứ về một nền tảng duy nhất.
Giải pháp từ MySQL 8
Đội ngũ kỹ sư công nghệ của Shopify chuyển sang MySQL 8, dùng tính năng SKIP LOCKED để mỗi đơn vị hàng tồn kho có một dòng dữ liệu riêng, thay vì gộp chung vào một cột số lượng dễ gây tắc nghẽn khi hàng ngàn người mua thao tác cùng lúc. Cách làm này lấy cảm hứng từ công ty phần mềm 37signals, giúp hệ thống chịu tải cao mà vẫn giữ tính nhất quán dữ liệu.
Bài học bất ngờ
Điều khiến đội kỹ thuật Shopify ngạc nhiên nhất không phải là thiết kế cơ sở dữ liệu, mà là việc các chỉ số giám sát ban đầu không phản ánh đúng nút thắt cổ chai thực sự của hệ thống. Đây là bài học đáng chú ý cho bất kỳ nền tảng nào đang mở rộng quy mô xử lý giao dịch trực tuyến.






