Inspiration

Việc truy xuất và đối soát dữ liệu chuỗi số theo khu vực thời gian thực (Real-time Regional Data) thường gặp rào cản do cấu trúc hạ tầng bất đồng bộ và độ trễ truy vấn cao. Dự án được khởi xướng nhằm xây dựng một giải pháp tối ưu hóa luồng dữ liệu, cho phép tra cứu, xử lý và đối sánh các tập chuỗi số đa vùng miền với độ chính xác tuyệt đối và thời gian phản hồi ở mức milisecond.

What it does

Multi-Region Data Checker là ứng dụng đa nền tảng (Web/Mobile) đóng vai trò như một giao diện truy vấn tập trung. Hệ thống kết nối trực tiếp với VN-LottoData Open Source API để:Đồng bộ dữ liệu đa luồng từ các điểm phát sóng vùng miền (ví dụ: truy vấn dữ liệu theo mã tỉnh thành như xsbdinh).Thực hiện thuật toán đối soát tự động giữa chuỗi số đầu vào của người dùng và cơ sở dữ liệu hệ thống.Trả về trạng thái trùng khớp chính xác theo thời gian thực với độ trễ dưới $100\text{ms}$.

How I built it

Hệ thống được phát triển dựa trên kiến trúc Microservices hiện đại để đảm bảo khả năng mở rộng: Frontend: Xây dựng bằng React Native (cho Mobile) và Next.js (cho Web), tối ưu hóa trải nghiệm người dùng và khả năng truy vấn dữ liệu tĩnh (SSG) kết hợp Client-side Rendering. Backend: Sử dụng Node.js kết hợp Fastify framework nhằm xử lý I/O bất đồng bộ hiệu quả cao. API & Integration: Tích hợp RESTful API từ VN-LottoData, sử dụng Axios để thực hiện các HTTP Request với cơ chế Retry tự động khi gặp sự cố mạng. Caching Layer: Triển khai Redis Cache lưu trữ các tập chuỗi số đã phát sóng trong ngày. Luồng truy vấn sẽ ưu tiên đọc dữ liệu từ RAM Cache thay vì gọi trực tiếp xuống Database, giảm $80\%$ tải cho hệ thống gốc.

Challenges I ran into

Bất đồng bộ cấu trúc dữ liệu: Mỗi vùng miền có định dạng chuỗi số và khung giờ cập nhật khác nhau. Việc chuẩn hóa (Data Normalization) về một Schema duy nhất đòi hỏi phải xây dựng các bộ lọc Data Pipeline chặt chẽ.

Xử lý truy vấn đột biến (Traffic Spikes): Vào các khung giờ cao điểm phát sóng dữ liệu, lượng request tăng vọt dễ gây nghẽn cổ chai. Bài toán này được giải quyết bằng giải pháp Load Balancing (NGINX) và cơ chế Caching nhiều tầng.

Accomplishments that I'm proud of

Thiết kế thành công hệ thống đối soát chuỗi số đa vùng miền có độ chính xác $100\%$ mà không xảy ra tình trạng sai lệch dữ liệu index.Tối ưu hóa thời gian phản hồi API (API Response Time) đạt trung bình $60\text{ms}$, ngay cả trong thời điểm lưu lượng truy cập đạt đỉnh.Đóng góp ngược lại bộ mã nguồn mở giải pháp xử lý Data Parser cho cộng đồng phát triển VN-LottoData.

What I learned

Quá trình phát triển dự án giúp cải thiện sâu sắc kỹ năng thiết kế hệ thống có độ sẵn sàng cao (High Availability System). Lựa chọn mô hình Caching phù hợp và chuẩn hóa dữ liệu từ bước Ingestion (tiếp nhận) là yếu tố quyết định để giữ cho hệ thống luôn hoạt động ổn định dưới áp lực tải lớn.

What's next for Build Multi-Region Lotto Checker

Tích hợp Webhook: Cung cấp cơ chế PUSH Notification theo thời gian thực cho người dùng ngay khi có dữ liệu mới phát hành. Tối ưu hóa Offline-first: Sử dụng SQLite/IndexedDB trên thiết bị để cho phép tra cứu lịch sử chuỗi số ngay cả khi không có kết nối Internet. Mở rộng SDK: Đóng gói thư viện Client SDK (Python, Dart) giúp các lập trình viên khác dễ dàng nhúng module tra cứu vào hệ thống của họ.

Built With

  • api
  • multi
  • ocr
  • ui
  • ux
Share this project:

Updates