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:

ores.cli

Command-line interface — import/export currencies and reference data in multiple formats, ORE sample execution, and batch operations. A thin ores.nats client that drives domain services without a GUI.

Sub-component Role Dependencies
ores.cli CLI batch operator and ores.nats client All layers

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

Emacs 29.3 (Org mode 9.6.15)