Перейти к содержанию
Версия: 3.3.51 Обновлено: 2026-01-23

System Architecture

Overview

High-level system architecture documentation for Saga Platform.

System Diagram

flowchart TB
    subgraph UI["User Interface Layer"]
        UA["User App<br/>(Next.js)"]
        AA["Admin App<br/>(Next.js)"]
    end

    subgraph BACKEND["Backend Layer (Go)"]
        subgraph API["REST API Server (Chi Router)"]
            EP1["/api/user/*"]
            EP2["/api/admin/*"]
            EP3["/api/auth/*"]
        end

        subgraph BL["Business Logic Layer"]
            BS["Balance Service"]
            IS["Investment Service"]
            WS["Withdrawal Service"]
            AS["Auth Service (JWT)"]
            C2B["Crypto2B Integration"]
        end

        subgraph DA["Data Access Layer"]
            UR["User Repository"]
            TR["Transaction Repository"]
            IR["Investment Repository"]
        end
    end

    subgraph EXTERNAL["External Services"]
        DB[("PostgreSQL<br/>:5432")]
        C2API["Crypto2B API<br/>(Deposits)"]
        FS["File System<br/>(Logs)"]
    end

    UA -->|HTTPS| API
    AA -->|HTTPS| API
    API --> BL
    BL --> DA
    DA --> DB
    BL --> C2API
    DA --> FS

    style UI fill:#e3f2fd
    style BACKEND fill:#fff3e0
    style EXTERNAL fill:#e8f5e9

Core Components

Frontend Applications

User App (/frontend/user-app):

  • Purpose: End-user interface for investments
  • Framework: Next.js 14 (App Router)
  • Features:
  • Supabase OAuth authentication
  • Investment management
  • Balance monitoring
  • Transaction history

Admin App (/frontend/admin-app):

  • Purpose: Administrative dashboard
  • Framework: Next.js 14 (App Router)
  • Features:
  • User management
  • Withdrawal approval
  • System monitoring
  • Investment oversight

Backend Services

Auth Service:

  • Supabase Auth integration (Google OAuth, email/password)
  • JWT token generation and validation
  • Role-based access control (user/admin)

Balance Service:

  • Real-time balance calculations
  • Multi-currency support (USD, USDC, USDT)
  • Investment yields computation

Investment Service:

  • Investment creation and management
  • Strategy-based returns (conservative, balanced, aggressive)
  • Automatic yield calculations

Deposit Service (Crypto2B):

  • External API integration for crypto deposits
  • Webhook callbacks for deposit confirmations
  • Auto-investment on deposit completion

Database Schema

Key tables: - users - User accounts and profiles - transactions - Financial transactions (append-only) - investments - User investments with strategies - transaction_requests - Withdrawal requests

API Structure

User API (/api/user/)

  • GET /investments - List user investments
  • POST /investments - Create investment
  • GET /balances - Get user balances
  • POST /withdrawals - Request withdrawal

Admin API (/api/admin/)

  • GET /users - List all users
  • GET /investments - List all investments
  • POST /withdrawals/:id/approve - Approve withdrawal
  • POST /deposits/emulate - Emulate deposit (dev)

Configuration

Key config files: - config/network.yaml - Domains, ports - config/database.yaml - PostgreSQL connection - config/auth.yaml - Supabase, JWT settings