1. Architecture
One Push
  • Tổng Quan
  • Bussiness Logic
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐỒNG BỘ HEARTBEAT (REAL-TIME SYNC)
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)
    • Business Logic (Luồng Logic Nghiệp Vụ)
  • Project
    • API
      • Hướng dẫn sử dụng
        • 1.1 Khởi tạo Website Tham gia
        • 1.2 Cấu hình Bots Telegram
        • 1.3 Quản lý Chiến dịch (Campaigns)
        • 1.4 Lên Lịch Gửi Tự Động
        • 1.5 Tương tác & Thống kê
        • 1.6 Quản lý Tài khoản (RBAC)
        • 1.7 Báo cáo Chi tiết Tin nhắn (Web & Telegram)
      • Architecture
        • System Architecture (Kiến trúc Hệ thống)
        • Code Structure
        • Database Schema (Mô hình Dữ liệu)
      • Deployment
        • Local
        • Production
        • Development
      • API
        • Widget nhúng Website
          • Đăng ký Subscriber mới / Nhật ký Heartbeat
          • Cập nhật trạng thái Seen/Read
          • Ghi nhận hiển thị Alert Popup
          • Lấy dữ liệu Alert cho website
        • Tracking & Tương tác
          • Ghi nhận lựa chọn Yes/No
        • Báo cáo & Thống kê
          • Thống kê người dùng Real-time
          • Phân tích tăng trưởng Subscriber
          • Dữ liệu bản đồ nhiệt Vị trí
          • Xuất báo cáo thông báo Excel
        • Lịch gửi Thông báo
          • Danh sách lịch gửi thông báo
          • Tạo lịch gửi mới
          • Bật/Tắt lịch gửi
        • Betting Tips
          • Lấy Tip bóng đá HOT nhất
          • Lấy dữ liệu Mock Tip (Test)
        • Telegram Integration
          • Danh sách Telegram Bot
          • Telegram Webhook Endpoint
        • Email Marketing
          • Tạo và gửi chiến dịch Email
        • Hệ thống & RBAC
          • Danh sách tài khoản Admin/Nhân viên
          • Danh sách vai trò (Roles)
        • Tiện ích & Files
          • Truy xuất nhật ký hệ thống (System Logs)
        • Chiến dịch (Campaigns)
          • Danh sách chiến dịch
        • Website Khách hàng (Clients)
          • Danh sách website khách hàng
        • Quản lý Thành viên (Subscribers)
          • Danh sách người đăng ký (Subscribers)
          • Xóa người nhận tin
    • TOOL
      • Hướng dẫn sử dụng
        • Hướng dẫn sử dụng — Novu Notification Infrastructure
      • Architecture
        • System Architecture
        • Code Structure
        • Database Schema
      • Deployment
        • Deployment
      • API
        • 👥 Subscribers
          • Tạo/Cập nhật Subscriber
          • Cập nhật Profile
        • 🗺️ Workflows
          • Lấy danh sách Workflow Templates
          • Chi tiết Workflow
        • 📂 Notification History
          • Lịch sử biến động Notification
        • 🎯 Topics
          • Tạo Topic mới
        • 📐 Layouts
          • Lấy danh sách Layout (Email/Web)
        • 💬 Messages
          • Tra cứu vết tin nhắn chi tiết (Low-level)
        • 🔌 Integrations
          • Danh sách nhà cung cấp (Providers)
        • 🚀 Events & Triggers
          • Kích hoạt thông báo (Workflows)
          • Kích hoạt hàng loạt (Bulk Trigger)
  • Schemas
    • GenericResponse
  1. Architecture

System Architecture (Kiến trúc Hệ thống)

System Architecture — One Push Ecosystem#


🏗️ Tổng Quan Hạ Tầng & Nguyên Lý#

Kiến trúc của One Push hướng tới mục tiêu duy nhất: Đẩy tin không giới hạn (Unlimited Push Delivery). Chúng tôi chia tách hệ thống thành các khối độc lập để đảm bảo nếu Web Server gặp sự cố, luồng bắn tin vẫn diễn ra bình thường.

MỤC LỤC CHI TIẾT#

1.
I. Tổng quan Kiến trúc (High Level Architecture)
2.
II. Luồng Dữ liệu Heartbeat (Real-time Pipeline)
3.
III. Hệ thống Giám sát & Logs (Observability)
4.
IV. Ma trận Cảnh báo (Alerting System)

I. Tổng quan Kiến trúc (High Level Architecture)#

Hệ thống sử dụng mô hình Fan-out Queue Architecture:
Web Server: PHP-FPM tiếp nhận tin nhắn từ Admin, đẩy Payload vào hàng đợi Redis.
Queue Workers: Phân tán trên hàng chục Container chạy song song, bốc tin từ Redis và gọi API Firebase/Telegram.
Database Cluster: MySQL nhận dữ liệu đã được xử lý xong để lưu trữ lịch sử.

II. Luồng Dữ liệu Heartbeat (Real-time Pipeline)#

Bộ nhúng Widget trên trình duyệt sẽ ping về Server định kỳ 5 phút.
Tại sao dùng Redis Buffer?
Để tránh trường hợp 10.000 users cùng ghi vào MySQL một lúc gây nghẽn (IO Wait). Redis In-memory giúp xử lý cực nhanh, sau đó MySQL mới bốc dữ liệu theo lô (Bulk Insert) để lưu trữ.

III. Hệ thống Giám sát & Logs (Observability)#

Sử dụng Laravel Horizon làm Dashboard chính để giám sát trạng thái hàng đợi:
Thống kê Real-time: Tổng lượng Job đang chờ, Job thành công, Job thất bại.
Retry Strategy: Tự động bắn lại thông báo tối đa 3 lần nếu gặp lỗi API FCM timeout.
Log Retention: Nhật ký file được xoay vòng (Rotate) hàng ngày để tối ưu dung lượng ổ cứng.

IV. Ma trận Cảnh báo (Alerting System)#

Hệ thống cảnh báo đa tầng thông qua Telegram Webhook:
Mức độMàu sắcKênh (Channel)Mô tả
CRITICAL🔴 ĐỏChannel-ErrorBáo động khi DB bị Deadlock hoặc Redis đầy
WARNING🟡 VàngChannel-SystemCảnh báo khi CPU Load vượt quá 85%
INFO🟢 XanhChannel-ReportBáo cáo hiệu suất hàng giờ: Send/Seen/Read

Modified at 2026-03-27 03:49:16
Previous
1.7 Báo cáo Chi tiết Tin nhắn (Web & Telegram)
Next
Code Structure
Built with