Shopify giới thiệu GraphQL Cardinal: Tăng tốc độ truy vấn lên 15 lần với kiến trúc Breadth-First
Shopify đã ra mắt GraphQL Cardinal, một động cơ thực thi mới thay thế phương pháp duyệt theo chiều sâu (depth-first) truyền thống bằng duyệt theo chiều rộng (breadth-first). Động cơ mới này mang lại hiệu suất vượt trội với tốc độ thực thi trường dữ liệu nhanh hơn 15 lần, giảm tải dọn rác (GC) 6 lần và cải thiện đáng kể độ trễ cho các truy vấn thương mại điện tử quy mô lớn.

Shopify vừa công bố động cơ thực thi GraphQL mới mang tên internally là GraphQL Cardinal, đánh dấu một bước tiến lớn trong việc tối ưu hóa hiệu suất của các truy vấn dữ liệu phức tạp. Điểm đột phá của công nghệ này nằm ở việc thay thế mô hình duyệt theo chiều sâu (depth-first traversal) truyền thống bằng mô hình duyệt theo chiều rộng (breadth-first execution).
Theo Shopify, kết quả kiểm nghiệm trong môi trường thực tế (production) cho thấy những cải thiện ấn tượng đối với các truy vấn GraphQL danh sách quy mô lớn. Cụ thể, tốc độ thực thi cấp trường (field-level execution) nhanh hơn 15 lần, chi phí dọn rác (garbage collection - GC) giảm 6 lần và thời gian phản hồi tổng thể P50 rút ngắn được hơn 4 giây.
So sánh thời gian phản hồi giữa Breadth First và Depth First
Thách thức của mô hình Depth-first truyền thống
Hầu hết các động cơ GraphQL hiện nay hoạt động bằng cách duyệt cây truy vấn một cách đệ quy, giải quyết các trường dữ liệu (fields) từng đối tượng một theo chiều sâu. Mặc dù cách tiếp cận này trực quan và dễ implement, nó thường dẫn đến việc gọi resolver lặp đi lặp lại, mô hình cấp phát bộ nhớ phân mảnh và áp lực lớn lên bộ nhớ dọn rác khi xử lý các tập dữ liệu lồng nhau sâu.
Đối với một hệ thống thương mại điện tử khổng lồ như Shopify, nơi các truy vấn thường bao gồm danh sách sản phẩm, biến thể và kho hàng có quan hệ phức tạp, việc duyệt theo chiều sâu trở thành nút thắt hiệu suất.
/filters:no_upscale()/news/2026/06/shopify-graphql-cardinal-bfs/en/resources/1Screenshot 2026-05-23 at 11.12.16 AM-1779561190654.png)
Cách tiếp cận Breadth-first của GraphQL Cardinal
GraphQL Cardinal thay đổi hoàn toàn mô hình duyệt bằng cách thực thi truy vấn từng cấp độ (level) trên tập hợp các thực thể (collections of entities). Thay vì giải quyết các trường dữ liệu độc lập cho từng nút trong cây, động cơ mới này xử lý hàng loạt (batch) các resolver trên các nhóm đối tượng có cùng độ sâu.
Shopify chỉ ra rằng phương pháp này cải thiện khả năng tận dụng bộ nhớ đệm CPU (CPU cache locality), giảm tính toán dư thừa và giảm thiểu việc cấp phát/thu hồi bộ nhớ cho mỗi yêu cầu. Điều này biến việc xử lý theo lô (batching) thành một hành vi thực thi tích hợp sẵn thay vì chỉ là một bước tối ưu hóa phụ trợ.
Tối ưu hóa và tương thích
Việc thay đổi kiến trúc đòi hỏi sự điều phối sâu rộng trong cơ sở hạ tầng, từ điều phối thực thi, hành vi của resolver, cho đến hệ thống theo dõi (tracing) và lập lịch runtime. Tuy nhiên, một trong những thách thức lớn nhất mà Shopify đã vượt qua là duy trì tính tương thích ngữ nghĩa GraphQL.
Các schema và resolver hiện tại được thiết kế dựa trên giả định đệ quy theo chiều sâu. GraphQL Cardinal đã thích nghi cơ chế điều phối và tracing mà không yêu cầu viết lại API rộng khãi, cho phép các đội ngũ phát triển tận dụng lợi ích hiệu suất ngay lập tức mà không thay đổi cấu trúc truy vấn ở tầng ứng dụng.
Farhan Thawar, Trưởng bộ phận Kỹ thuật tại Shopify, nhận định rằng việc thực thi GraphQL truyền thống về mặt thuật toán là rất tốn kém khi mở rộng quy mô, nhưng rất ít người đặt câu hỏi về nó cho đến nay. Động cơ mới này là câu trả lời của Shopify cho một vấn đề kỹ thuật "nằm ngay trước mắt" nhưng thường bị bỏ qua.
Bài viết liên quan

Công nghệ
Microsoft giới thiệu Surface Pro 12 và Surface Laptop 8: Sức mạnh chip Intel, giá thành gây sốc
19 tháng 5, 2026

Công nghệ
CEO Palantir: 10% thế giới "ghét chúng tôi một cách chuyên nghiệp"
05 tháng 5, 2026

Công nghệ
"Rối loạn tâm thần do AI": Tại sao các CEO công nghệ đang ảo tưởng về năng suất?
27 tháng 5, 2026
