Skip to content
GitLab

Architecture Overview

Akili is a Data Product Platform-as-a-Service. Developers declare data products in 6 YAML manifests plus business logic (SQL or Python). The platform handles everything else: ingestion, orchestration, execution, quality enforcement, multi-tier serving, governance, and lineage tracking — all multi-tenant, all automated.

One deployment serves all tenants. No orchestration code is written by developers. No infrastructure is managed by developers. The platform generates all pipeline code deterministically from manifests.

The core loop: Declare (YAML) -> Validate (schema + cross-manifest) -> Generate (deterministic codegen) -> Execute (isolated compute) -> Serve (intent-routed stores) -> Govern (automated quality, lineage, SLAs).

GoalMeaning
DeclarativeDevelopers write YAML + SQL/Python. The platform does the rest.
Multi-tenantEvery table, every query, every topic is tenant-scoped. No cross-tenant data access.
Self-hostedRuns on bare-metal Hetzner K3s. No cloud vendor lock-in.
ObservableEvery execution has a trace. Every quality check is recorded. Every lineage edge is tracked.
Enterprise-readyBootstrap from bare metal, license enforcement, air-gap support, IP protection.

The platform degrades gracefully rather than failing completely:

  • Security governance is fail-closed — never degrade masking, classification, or auth
  • Quality governance is fail-open — degrade gracefully, show partial data
  • Circuit breakers on all downstream calls (serving stores, notifications, external APIs)
  • Atomic writes for all cached/persisted state (tempfile, fsync, persist)
  • All queries filtered by tenant_id at every layer
  • Cursor-based pagination (never offset-based)
  • Per-tenant resource limits enforced at the service layer
  • Split database pools: 90% routine traffic + 10% critical operations
  • Service layer pattern: handlers are thin adapters, business logic in services
  • Repository pattern: services never touch the database directly
  • Crate dependency rules enforced by CI
  • Generated code (catalog packages) never hand-edited
StakeholderConcern
Data product developersSimple manifest authoring, fast feedback, reliable execution
Platform operatorsObservability, alerting, disaster recovery, capacity planning
Enterprise customersAir-gap deployment, license compliance, IP protection
Security teamTenant isolation, classification propagation, audit trail
LayerTechnologyPurpose
Platform servicesRust + AxumControl-plane API, CLI, CRD operators
OrchestrationDagsterAsset graph, sensors, IO managers, quality checks
PortalNext.js 15 + React 19Developer and operator UI
OLTPPostgreSQL (CNPG)Registry, state, RLS-based tenant isolation
AnalyticsStarRocksOLAP via Iceberg federation
Time seriesTimescaleDBKPIs, continuous aggregates
CacheRedisReal-time serving, session cache
Object storageCeph RGWS3-compatible storage for data lake
StreamingRedpandaDomain events, per-tenant topics
IdentityAuthentikOIDC, SSO, RBAC
GitOpsArgoCDApp-of-Apps deployment pattern
ComputeK3s on Hetzner3 masters (HA) + 8 workers + 2 Spark nodes