{
  "title": "جریان کلی",
  "slug": "team/platform/diagrams/container_diagram",
  "url": "/docs/team/platform/diagrams/container_diagram",
  "frontmatter": {
    "layout": "doc",
    "title": "جریان کلی",
    "description": "جریان کلی سیستم و ارتباط کانتینرها",
    "version": "0.2.0",
    "status": "Draft",
    "author": "Backend Team",
    "owner": "Backend Team",
    "created_at": "2026-06-07",
    "updated_at": "2026-06-22",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "جریان کلی",
      "content": "این دیاگرام نمای سطح بالا از معماری سیستم و ارتباط بین کانتینرهای اصلی را نمایش می‌دهد."
    },
    {
      "level": 2,
      "heading": "اجزای اصلی",
      "content": ""
    },
    {
      "level": 3,
      "heading": "لایه دسترسی",
      "content": "- **کاربران** — کاربران عادی و مدیران سیستم از طریق API Gateway به سرویس‌ها متصل می‌شوند\n- **API Gateway** — نقطه ورود واحد، مسیریابی درخواست‌ها به سرویس‌های مربوطه"
    },
    {
      "level": 3,
      "heading": "لایه هویت",
      "content": "- **Auth Service** — احراز هویت کاربران و مدیریت نشست (ORY Kratos)\n- **Token Service** — صدور و اعتبارسنجی توکن‌های OAuth2/OIDC و افشای JWKS (ORY Hydra)\n- **Login-Consent App** — سرویس مستقل Go؛ واسط بین Hydra و Kratos (Login & Consent flow + Token Hook) — **تنها کد اختصاصی حوزه توکن**\n- **KYC Service** — احراز هویت مشتریان و تأیید هویت\n- **IAM Service** — مدیریت هویت‌ها، نقش‌ها، مجوزها و Policy Engine داخلی\n\n> **تغییر:** موتور مجوزدهی Keto در معماری جدید منسوخ شده است. تمام بررسی‌های مجوز از طریق IAM Service با API `POST /v1/iam/authorization/check` انجام می‌شود. صدور و اعتبارسنجی توکن (JWT) از auth-service جدا شده و بر عهده **Token Service (Hydra)** است — میکروسرویس‌ها توکن را به‌صورت stateless با JWKS اعتبارسنجی می‌کنند."
    },
    {
      "level": 3,
      "heading": "لایه سرویس‌های کسب‌وکار",
      "content": "- **Marketplace** — مدیریت محصولات و بازارگاه\n- **Order** — مدیریت سفارش‌ها (فقط وضعیت کسب‌وکار)\n- **Payment** — مدیریت Escrow و تراکنش‌های پرداخت\n- **Wallet** — نگهداری و مدیریت موجودی مالی (Source of Truth)\n- **Currency** — نرخ ارز و تبدیل مبلغ — **NEW**\n- **Settlement** — کمیسیون، تسویه فروشنده و refund — **NEW**\n- **Chat** — پیام‌رسانی بین خریدار و فروشنده"
    },
    {
      "level": 3,
      "heading": "لایه عملیاتی",
      "content": "- **Dispute** — رسیدگی به اختلافات\n- **Review** — بازخورد و امتیازدهی\n- **Zone** — حوزه تخصصی فروشندگان\n- **Moderation** — بررسی تخلفات و محدودیت‌ها\n- **Notification** — ارسال نوتیفیکیشن"
    },
    {
      "level": 3,
      "heading": "لایه رشد",
      "content": "- **Search** — ایندکس و جستجو\n- **Boost** — ارتقاء و تبلیغات"
    },
    {
      "level": 3,
      "heading": "لایه ابزاری",
      "content": "- **Pool** — مدیریت متمرکز داده‌های مرجع (Reference Data) و مواد اولیه تولید (مثل کلمات تولید Username، آواتارها، لیست رزرو شده) — ر.ک. [Pool Service Blueprint](../../backend/services/pool-service/blueprint.md)\n- **Storage** — ذخیره‌سازی فایل\n- **Analytics** — تحلیل داده و گزارش‌گیری"
    },
    {
      "level": 3,
      "heading": "زیرساخت رویداد",
      "content": "- **NATS JetStream** — گذرگاه رویدادهای سیستم"
    },
    {
      "level": 3,
      "heading": "داده‌های مالی",
      "content": "- **TigerBeetle** — دفترکل تراکنش‌های مالی (Double-Entry) — **NEW**\n- **Redis** — کش نرخ ارز (Rate Cache) — **NEW**"
    },
    {
      "level": 2,
      "heading": "جریان‌های اصلی",
      "content": "1. **کاربر** ← Gateway ← سرویس مقصد (درخواست مستقیم)\n2. **سرویس** ← IAM (بررسی مجوز: POST /v1/iam/authorization/check)\n3. **سرویس** ← NATS (انتشار رویداد)\n4. **NATS** ← Analytics (تحلیل رویداد)\n5. **Order** → **Payment** (ثبت پرداخت) → **Currency** (تبدیل ارز) → **Wallet** (تغییر موجودی)\n6. **Payment** → **NATS** → **Settlement** (تسویه پس از تحویل)\n7. **Settlement** → **Currency** (تبدیل ارز تسویه) → **TigerBeetle** (ثبت تراکنش)\n8. **Dispute** → **Payment** + **Wallet** (تصمیمات داوری)\n\n```mermaid\n\nflowchart TB\n\n    User[کاربر]\n    Admin[مدیر سیستم]\n\n    User --> Gateway\n    Admin --> Gateway\n\n    Gateway[\"API Gateway\"]\n\n    Gateway --> Auth\n    Gateway --> Marketplace\n    Gateway --> Order\n    Gateway --> Payment\n    Gateway --> Wallet\n    Gateway --> Chat\n    Gateway --> Search\n    Gateway --> Storage\n\n    %% Identity\n\n    Auth[\"Auth Service (Kratos)\"]\n    Token[\"Token Service (Hydra / OAuth2)\"]\n    LC[\"Login-Consent App (Go)\"]\n    KYC[\"KYC Service\"]\n    IAM[\"IAM Service\"]\n\n    Auth --> KYC\n    Auth --> IAM\n    Auth --> Token\n    Gateway --> Token\n    Gateway --> LC\n\n    %% Login-Consent App — independent service bridging Hydra (Token) and Kratos (Auth)\n    LC --> Auth\n    LC --> Token\n\n    Marketplace -. Authz Check .-> IAM\n    Order -. Authz Check .-> IAM\n    Payment -. Authz Check .-> IAM\n    Wallet -. Authz Check .-> IAM\n    Chat -. Authz Check .-> IAM\n    Storage -. Authz Check .-> IAM\n\n    %% Token (JWKS) — stateless JWT validation by services\n    Payment -. JWKS validation .-> Token\n    Wallet -. JWKS validation .-> Token\n\n    %% Event Bus\n\n    NATS[\"NATS JetStream\"]\n\n    Auth --> NATS\n    IAM --> NATS\n\n    Marketplace --> NATS\n    Order --> NATS\n    Payment --> NATS\n    Wallet --> NATS\n    Currency --> NATS\n    Settlement --> NATS\n    Chat --> NATS\n\n    Dispute --> NATS\n    Review --> NATS\n    Zone --> NATS\n    Moderation --> NATS\n    Notification --> NATS\n\n    Search --> NATS\n    Boost --> NATS\n    Analytics --> NATS\n\n    %% Core Services\n\n    Marketplace[\"Marketplace Service\"]\n\n    Order[\"Order Service\"]\n\n    Payment[\"Payment Service\"]\n    Currency[\"Currency Service\"]\n\n    Wallet[\"Wallet Service\"]\n    Settlement[\"Settlement Service\"]\n\n    Chat[\"Chat Service\"]\n\n    %% Financial Data Stores\n\n    TigerBeetle[(TigerBeetle\\nDouble-Entry Ledger)]\n    RedisRate[(Redis\\nRate Cache)]\n\n    Wallet -->|reads/writes| TigerBeetle\n    Settlement -->|reads/writes| TigerBeetle\n    Payment -.->|lookup| RedisRate\n    Currency -.->|reads/writes| RedisRate\n\n    %% Operational\n\n    Dispute[\"Dispute Service\"]\n\n    Review[\"Review Service\"]\n\n    Zone[\"Zone Service\"]\n\n    Moderation[\"Moderation Service\"]\n\n    Notification[\"Notification Service\"]\n\n    %% Growth\n\n    Search[\"Search Service\"]\n\n    Boost[\"Boost Service\"]\n\n    %% Utility\n\n    Pool[\"Pool Service (Reference Data)\"]\n\n    Storage[\"Storage Service\"]\n\n    Analytics[\"Analytics Service\"]\n\n    %% Business Flow\n\n    Marketplace --> Order\n\n    Order --> Payment\n    Order --> Settlement\n\n    Payment --> Currency\n    Payment --> Wallet\n    Payment --> Settlement\n\n    Settlement --> Currency\n    Settlement --> TigerBeetle\n\n    Order --> Chat\n\n    Order --> Dispute\n\n    Dispute --> Payment\n\n    Dispute --> Wallet\n\n    Boost --> Search\n\n    %% Storage\n\n    Marketplace --> Storage\n\n    Chat --> Storage\n\n    %% Analytics\n\n    NATS --> Analytics\n\n```"
    }
  ]
}