Skip to content

Architecture

Consystence is a three-tier system where each tier runs its own Orleans cluster, and two rendering systems — the GUI DSL and the scene graph — compose to deliver real-time operator interfaces.

graph TB
    subgraph Cloud["Cloud Tier — Azure"]
        CA[Multi-Tenant Orleans Cluster]
        FM[Fleet ML & AI Training]
        MP[Type Marketplace]
    end

    subgraph Site["Site Server — On-Prem"]
        SO[Single-Tenant Orleans Cluster]
        PR[PageRenderer — GUI DSL]
        SR[SceneRenderer — Scene Graph]
        PG[(PostgreSQL)]
    end

    subgraph Edge["Edge Tier — Nvidia Orin"]
        PLC[PLC Gateway — libplctag]
        ML[TensorRT Inference]
        BUF[(SQLite Buffer)]
    end

    CA <-->|"gRPC + SignalR"| SO
    SO <-->|"gRPC-over-HTTP/3"| PLC

    PR --> HTML[HTML + Tailwind]
    SR --> SVG[SVG Fragments]
    HTML -->|SignalR| Browser[Operator Browser]
    SVG -->|SignalR| Browser

The GUI DSL handles page layout — grids, tabs, alarm lists, trend charts — and renders full HTML pages server-side. The scene graph handles process visualisation — pumps, pipes, tanks, valves — and renders SVG fragments. Both are delivered to the browser over SignalR as differential updates. The client is a thin TypeScript shell that patches the DOM.

In this section

  • Three-Tier Overview — cloud, site server, and edge device responsibilities, connectivity, and the fleet learning model.
  • Orleans Grains — the distributed actor runtime, grain key conventions, storage, clustering, and streams.
  • GUI DSL — server-rendered HTML component system, the component tree, and how pages are composed.
  • Scene Graph — the C# object graph that models physical plant, SVG rendering, data binding, and the state flow from PLC to pixel.
  • Real-Time Communication — SignalR hubs, differential updates, and connection lifecycle.