Browse documentation
View Markdown

Architecture

Nines multi-provider telemetry, reviewed SLO publication and standalone operator architecture

  • Nines is a Go server with a React/shadcn/ui frontend embedded in the executable. PostgreSQL stores normal deployment data.
    • The explicit demo uses isolated memory stores and synthetic data.
    • Deploy one collecting server process for the MVP; distributed collector scheduling is not implemented.
  • Telemetry stays in your observability backend. Nines reads provider-specific APIs for Prometheus, Mimir, Datadog, New Relic, Dash0, Google Cloud Monitoring and VictoriaMetrics.
    • Datadog, New Relic, Dash0, Google Cloud Monitoring and VictoriaMetrics adapters are experimental.
    • Prometheus/Mimir recording and burn-rate rules, reviewed native vendor SLO publication, and Nines attainment/alert evaluation are distinct capabilities.
    • Datadog, New Relic, Dash0 and Google Cloud support native SLO publication within documented subsets. VictoriaMetrics currently supports collection only; native vendor alert creation is not included.
    • Query languages, setup and live-test coverage differ by provider. See the provider capability matrix.
  • The CLI shares validation, deterministic measurement compilation and recording-rule generation with the server.
    • Offline commands do not start a server or load credentials.
    • Connected operations use a fixed server and tenant, with exact revisions or digests for writes.
    • The Go client and stdio MCP adapter use the same HTTP contracts.
PathResponsibility
api/v1alpha1Shared versioned resource and operation types
internal/model, internal/engineValidation and SLI/SLO calculation
internal/prometheus, internal/rulesProvider queries, recording and burn-rate rules
internal/storeMemory/PostgreSQL resource and measurement storage
internal/tenancy, internal/identityTenant boundaries, roles, sessions and provider identity
internal/httpapiAuthenticated HTTP contracts and embedded UI
cmd/server, cmd/nines, cmd/mcpServer, Cobra CLI and stdio adapter
client, skillsGo API client and bundled agent guidance
webUI source, tests and build configuration
internal/intentflow, internal/investigation, reviewskillsExperimental bounded agent workflows
internal/operator, cmd/operatorStandalone Kubernetes controller and GitOps adapter
  • The default resource is one self-contained SLO: spec.measurement owns its metric, population, success criteria, scrape cadence and observation point alongside the target, window and policies.
    • Deterministic compilation derives provider selectors without creating another resource.
    • The same contract works in portal, CLI, MCP and operator; intent workflows add human confirmation and reviewed changes.
    • Explicit shared bindings and custom queries remain advanced alternatives.
  • Each tenant selects an independently bound store, source map and rule destination.
    • An owner can enable automatic rule reconciliation per source: saved SLO revisions, including approved intent apply and rollback, become the desired recording/alert rules.
    • Prometheus uses a shared rule directory plus native reload, Mimir uses its ruler API, and operator mode publishes owned SLO CRs.
    • Persistent pause/retry controls and separate runtime/output checks are described in automatic rule deployment.
    • User input does not select database schemas, arbitrary provider URLs, credentials or Mimir organizations.
    • Projects are metadata within a tenant, not independent security boundaries. Models cannot change the deterministic arithmetic.
  • The Go module path is github.com/ishantanu/nines.
    • Public SDK installation becomes available after the repository and version are published.
    • The public source export is rooted in the platform alone; parent analysis files and other projects are excluded.