System Architecture (Kiến Trúc Hệ Thống)#
Dự án áp dụng mô hình Decoupled Architecture (Kiến trúc phân tách) kết hợp với API-First Approach. Mô hình này phân chia rạch ròi giữa phân hệ giao diện người dùng (Presentation Layer - FE) và phân hệ xử lý nghiệp vụ (Business Logic Layer - BE), giúp hệ thống dễ dàng mở rộng, bảo trì và tích hợp đa nền tảng trong tương lai.
Workflow & Data Flow (Luồng Xử Lý Dữ Liệu Tổng Quan)#
Dưới đây là vòng đời tiêu chuẩn của một luồng request đi qua hệ thống, từ lúc người dùng thao tác đến khi dữ liệu được trả về hoặc xử lý ngầm:1. Frontend Request (Presentation Layer)#
Công nghệ: Vue 3 SPA (Single Page Application).
Luồng xử lý: Khi người dùng tương tác trên giao diện trình duyệt, thư viện Axios sẽ tự động đệm JWT Token (lấy từ bộ nhớ cục bộ) vào HTTP Header và gửi một HTTP Request chuẩn RESTful tới Server API.
2. Backend Authentication (Security Layer)#
Công nghệ: Laravel Middleware kết hợp tymon/jwt-auth và spatie/laravel-permission.
Luồng xử lý: API Gateway tiếp nhận Request. Middleware lập tức giải mã Token để xác thực danh tính (Authentication) và kiểm tra phân quyền (Authorization). Nếu hợp lệ, Request mới được đi tiếp vào lõi hệ thống; nếu không, trả về ngay lỗi 401 Unauthorized hoặc 403 Forbidden.
3. Control Flow (Business Logic Layer)#
Công nghệ: PHP / Laravel 10 (Repository Pattern) & MySQL.
Luồng xử lý: Request vượt qua Auth sẽ đi đến Controllers. Tại đây, Controller gọi các Repositories để truy vấn dữ liệu qua ORM (Eloquent) từ MySQL.
Phản hồi tức thời: Đối với các hành động mang tính chất đồng bộ (Synchronous) như Lấy danh sách, Cập nhật thông tin cơ bản, hệ thống sẽ trả về JSON Response ngay lập tức cho Frontend.
4. Queue Worker & Schedule (Asynchronous / Background Tasks)#
Công nghệ: Redis MQ & Laravel Horizon Worker.
Luồng xử lý: * Các tác vụ tiêu tốn nhiều tài nguyên hoặc thời gian chờ dài (ví dụ: Load Volume search, Send Email báo cáo, Crawl/Tracking Keywords Rank) sẽ không được xử lý đồng bộ để tránh chặn (block) Timeout của HTTP Request.Thay vào đó, Controller đóng gói dữ liệu thành các Job và đẩy vào hàng đợi Redis MQ.
Các Worker (quản lý bởi Horizon) sẽ chạy độc lập dưới nền (Background) để lấy Job ra xử lý lần lượt.
5. Third-Party Integrations (Tích hợp Dịch vụ Bên ngoài)#
Hệ thống giao tiếp với các nền tảng bên thứ ba để mở rộng tính năng:Firebase: Quản lý Push Notification và tracking luồng xác thực (Auth tracking).
Telebot: Bắn cảnh báo lỗi hệ thống (Alerts) và gửi các báo cáo Wiki tự động qua Telegram.
External APIs: Sử dụng Guzzle HTTP Client để bắn truy vấn đến các Engine check ngoài (Google Search API, Bing, v.v.) để lấy dữ liệu Ranking.
6. Logging & Analytics (Lưu vết & Phân tích)#
Công nghệ: Elasticsearch.
Luồng xử lý: Thay vì ghi đè liên tục các log vào DB quan hệ gây chậm hệ thống, hệ thống sử dụng Elasticsearch như một kho lưu trữ Session Log tốc độ cực cao. Dữ liệu này sau đó được Frontend gọi API để render ra các biểu đồ đồ thị (Dashboard) phục vụ việc phân tích thời gian thực.
Modified at 2026-03-27 08:44:06