Quay lại danh sách dự án
HARVEST
JavaTemporal.ioGraphQLShopify APIHeroku
Hệ thống thu thập dữ liệu đơn hàng quy mô lớn từ Shopify, giải quyết triệt để OOM và Rate-limit bằng Stream API và Temporal.io.
IndiaVai trò: Backend EngineerThời gian: 03/2023 - 10/2023
Điểm nổi bật
- Xây dựng hệ thống thu thập dữ liệu (data ingestion) tự động cho các cửa hàng đang cài đặt ứng dụng của khách hàng. Mục tiêu là khai phá và trích xuất toàn bộ dữ liệu đơn hàng trong vòng 60 ngày gần nhất từ nền tảng Shopify.
- Dẫn dắt việc chuyển đổi chiến lược lấy dữ liệu từ REST API (bị giới hạn 7 ngày) sang công nghệ mới thời điểm đó là GraphQL Bulk Operations, cho phép truy xuất khối lượng dữ liệu khổng lồ trong một lần gọi.
- Khắc phục triệt để sự cố tràn bộ nhớ (Out-Of-Memory/OOM) khiến các Java worker bị crash khi đọc các file export quá nặng (4-6GB JSONL). Thay đổi hoàn toàn kiến trúc bằng cách Stream dữ liệu trực tiếp từ internet về để xử lý theo luồng (chunk) thay vì tải toàn bộ file vào RAM.
- Thiết kế luồng điều phối công việc (workflow orchestration) bằng Temporal.io để xử lý bài toán Rate-limiting do dùng chung token. Vì một job xuất dữ liệu của Shopify có thể mất đến 24 giờ, Temporal giúp hệ thống theo dõi tiến độ một cách tối ưu mà không cần polling liên tục.
- Tận dụng cơ chế retry thông minh (không bao giờ failed) và khả năng phục hồi activities của Temporal.io, đảm bảo hệ thống vận hành bền bỉ, 100% fault-tolerant trước mọi sự cố mạng hoặc gián đoạn dịch vụ.
- Giải pháp kiến trúc toàn diện và chất lượng codebase được khách hàng đánh giá xuất sắc. Sự ổn định dài hạn của hệ thống là tiền đề để team tiếp tục nhận được dự án phân tích và trực quan hóa dữ liệu (Data Analytics) ở giai đoạn sau.