Documentation

Architecture

How OpenPlait separates application intent, portable contracts, and backend execution.

Architecture

OpenPlait is an interoperability layer, not a database proxy or observability product. It places a stable contract between product features and datasource implementations.

Application features
  dashboards · telemetry · rules · evaluations · AI analysis
                         │
                         ▼
OpenPlait Query IR → runtime planning → normalized dataframes
                         │
              ┌──────────┴──────────┐
              ▼                     ▼
      ClickHouse adapter       Tempo adapter
      parameterized SQL        bounded TraceQL

Ownership boundaries

Host application ownsOpenPlait ownsAdapter owns
Connection records and secretsQuery and dashboard resourcesConfiguration validation
Tenant and project authorizationDataframe result contractBackend compilation
Network and SSRF policyRuntime routing and transformationsBounded execution
UI, scheduling, deliveryCapability negotiationResponse normalization

This boundary lets OpenLIT construct multiple datasource instances without making OpenPlait specific to OpenLIT. The same packages can power another application with a different connection store and UI.

Package layers

  • @openplait/core contains portable resources, types, schemas, parsing, and validation.
  • @openplait/adapter-sdk defines the adapter contract and stable error codes.
  • @openplait/runtime resolves datasources, plans execution, transforms frames, and evaluates alerts.
  • Adapter packages compile and execute against a particular backend.
  • @openplait/perses imports, exports, and binds portable dashboard definitions.