System Model: Application Layer
Table of Contents
This page is part of the System Model. Application is where the system surfaces — the layer that composes everything below it into user-facing executables. Qt desktop and Wt web are both clients of the same domain services over ores.nats; the compute engine is a long-running service; the CLI is a batch operator. See Qt Plugin Architecture for how the desktop client is decomposed into domain-specific plugins. To generate component diagrams, use the PlantUML Class Modeler skill.
Detail
ores.qt
Qt6 desktop GUI framework — MDI host application with a plugin architecture that loads domain-specific screens at startup. The host provides the MDI area, menu/toolbar construction, and an Emacs-like transient key-map; each plugin is an independent shared library compiled from its own CMake target.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.qt | MDI host, menu/toolbar construction | All layers |
| ores.qt.api | Plugin API contract, IPlugin lifecycle | ores.qt |
| ores.qt.party | Counterparty list, detail forms, identifiers | ores.qt.api |
| ores.qt.refdata | Currency, country, calendar CRUD screens | ores.qt.api |
| ores.qt.trading | Trade blotter, deal entry, instrument tables | ores.qt.api |
| ores.qt.mktdata | Curve/surface browser, fixings viewer | ores.qt.api |
| ores.qt.analytics | Reporting and analytics dashboards | ores.qt.api |
| ores.qt.compute | Compute job monitor, results viewer | ores.qt.api |
| ores.qt.scheduler | Scheduler task browser | ores.qt.api |
| ores.qt.workflow | Workflow instance tracker | ores.qt.api |
| ores.qt.workspace | Workspace management and isolation view | ores.qt.api |
| ores.qt.admin | User/role management, feature flags | ores.qt.api |
| ores.qt.data_transfer | Cross-domain entity import/export | ores.qt.api |
Related documents:
- Qt Plugin Architecture — two-phase plugin loading, IPlugin contract, and MDI host design.
- Qt menu and toolbar patterns — how the two-phase menu build sequence constructs menus across all plugins.
ores.cli
ores.http
Boost.Beast/Asio async HTTP server exposing a REST API for domain services. ores.http.api defines the route handler contract; ores.http.core provides the async infrastructure; ores.http.server wires all handlers and runs the event loop.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.http.api | Route handler contract, WSGI-style registry | Foundation |
| ores.http.core | Boost.Beast/Asio async infrastructure | ores.http.api, Domain |
| ores.http.server | Wires all route handlers, runs event loop | ores.http.core |
ores.wt.service
Wt C++ Web Toolkit frontend — account management, currency and country views, and feature flags. An alternative to the Qt desktop client, served as a web application using the same domain ores.nats services.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.wt.service | Wt web frontend, ores.nats domain client | All layers |
ores.compute
Compute engine — receives ORE Engine computation requests via ores.nats (ores.compute.service), executes them by spawning ORE child processes (ores.compute.wrapper), and publishes results. ores.compute.core holds the domain model for run configurations, chunking, and environment lifecycle.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.compute.api | Shared compute types and ores.nats protocol | — |
| ores.compute.core | Run configuration, chunking, env lifecycle | ores.compute.api, ores.database, ores.ore.api |
| ores.compute.wrapper | ORE Engine process spawner and result reader | ores.compute.api |
| ores.compute.service | Thin ores.nats entrypoint | ores.compute.core, ores.compute.wrapper, ores.nats |
Related documents:
- Compute Engine — compute architecture, run lifecycle, and chunking design.
ores.controller
Orchestration controller — assembles multi-stage compute pipelines from scheduler, compute, and reporting steps, sequences their execution, and tracks run state end-to-end.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.controller.api | Shared controller types and ores.nats protocol | — |
| ores.controller.core | Pipeline assembly, stage sequencing, run state | ores.controller.api, ores.compute.api, ores.reporting.api |
| ores.controller.service | Thin ores.nats entrypoint | ores.controller.core, ores.nats |
ores.shell
POSIX shell and Emacs Lisp developer tooling — database administration scripts, build helpers, and project automation. Not part of the production binary; it is the operator toolkit for managing a running system.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.shell | Shell scripts for database admin and builds | — |
ores.lisp
Emacs Lisp developer tooling — per-checkout dashboard (transient menu), database browser, shell integration, and org-roam export pipeline. Not part of the production system; it automates the developer workflow inside Emacs.
| Sub-component | Role | Dependencies |
|---|---|---|
| ores.lisp | Emacs Lisp dashboard and developer tooling | — |
See also
- System Model — the index page with the four-layer architecture overview.
- System Model: Domain Layer — the layer below.
- Qt Plugin Architecture — two-phase plugin loading, IPlugin contract, and MDI host design.
- Compute Engine — compute architecture, run lifecycle, and chunking design.