ARCHITECTURE.md 1.6 KB

Box System Architecture (Audit-Only, Immediate Publish)

1. Overview

The Box System is a high-performance video content and advertisement platform built using a NestJS monorepo. It consists of:

  • Management API (box-mgnt-api)
  • Application API (box-app-api)
  • Stats API (future: box-stats-api)
  • Shared libraries: common, core, db
  • Datastores: MySQL, MongoDB, Redis

This updated architecture removes Maker–Checker, uses audit-only trails, and adopts immediate publish behavior.

2. RBAC Roles

  • SuperAdmin: Full system access, including managing users and roles.
  • Manager: Manage content (ads, videos, channels), system params.
  • Admin: Similar to Manager with limited permissions.
  • Viewer: Read-only access.

Only SuperAdmin can:

  • Create users
  • Assign roles
  • Change roles
  • Disable accounts

3. Audit Trail Model

Kept fields:

  • createdBy
  • createdAt
  • updatedBy
  • updatedAt
  • lastUpdated

These appear in MySQL and MongoDB content models.

4. Data Flow

Mgnt API

User updates → validation → save to DB → update Redis cache → immediate publish.

App API

Requests go to Redis first:

  • Ads served from prebuilt pools
  • Videos served partly cached
  • Fallback to Mongo where applicable (future extension)

Stats API (Upcoming)

Handles:

  • Event ingestion
  • Redis queue/stream
  • Workers writing aggregated stats

5. Modules

Mgnt Modules

  • Ads
  • Ads Module
  • Videos
  • Categories
  • Channels
  • Tags
  • System Params
  • Upload / File service

App Modules

  • Ads placement
  • Video listing
  • Homepage aggregation
  • System params
  • Categories