Back to Iii

Architecture

docs/architecture/index.mdx

0.13.01.0 KB
Original Source

An iii system is made up of four components working together: the Engine, Workers, Modules, and Context.

mermaid
graph TD
    subgraph "External World"
        Client[HTTP Client]
        Redis[(Redis)]
        User[WebSocket
User]
    end

    subgraph "iii Engine Process"
        Core[Engine Core]
        Reg[Worker
Registry]

        subgraph "Core Modules"
            API[RestApiModule]
            Stream[StreamModule]
            Log[OtelModule]
            Queue[QueueModule]
            Cron[CronModule]
        end
    end

    subgraph "Worker Processes"
        W1[Node.js
Worker]
        W2[Python
Worker]
    end

    Client -->|HTTP
Request| API
    User -->|WS
Message| Stream

    API --> Core
    Stream --> Core

    Core -->|Lookup| Reg
    Core -->|Invoke
Function| W1
    Core -->|Invoke
Function| W2

    W1 -->|Register| Core
    W2 -->|Register| Core

    Queue -.->|Persist/Sub| Redis
    Stream -.->|State| Redis
    Cron -.->|Locks| Redis
    Log -.->|Store| Redis