Skip to content
GitLab

serving.yaml

Declares how and where the output should be accessible. The developer states intent; the platform routes to the correct store via Dagster IO Managers.

S3 object storage (Ceph RGW, via Iceberg/Lakekeeper) is always written to regardless of endpoint configuration. It is the source of truth with full time-travel capability. The endpoints below are additional projections optimized for specific access patterns.

apiVersion: akili/v1
kind: Serving
endpoints:
- type: lookup
description: Point lookups by outlet_id for the Portal
config:
index_columns:
- outlet_id
- sale_date
- type: analytics
description: Territory-level aggregations for executive dashboards
- type: realtime
description: Today's running totals, refreshed every 15 minutes
config:
key_template: "outlet:{outlet_id}:daily:{sale_date}"
ttl: 24h
include_columns:
- outlet_id
- sale_date
- total_revenue
- transaction_count
visualization:
enabled: true
dashboard_template: daily-sales-overview
refresh_interval: 15m
Developer DeclaresPlatform Routes ToMechanismWhen To Use
type: lookupPostgreSQLIO Manager upserts via COPY, tenant RLSPoint lookups, Portal API, key-value access
type: timeseriesTimescaleDBIO Manager inserts, auto continuous aggregatesTime-range queries, trend analysis
type: analyticsStarRocksNo-op — StarRocks federates to Iceberg on S3 directlyOLAP, GROUP BY, bulk scans, dashboards
type: realtimeRedisIO Manager SET with TTL, tenant-prefixed keysSub-10ms reads, streaming hot path
(no endpoints)S3 object storage onlyIceberg via LakekeeperCold storage, time travel, source of truth

type: analytics is a no-op write. StarRocks queries Iceberg tables on S3 object storage directly via its External Catalog feature. The platform simply registers the table in StarRocks’ catalog. No data movement occurs.

FieldTypeRequiredDefaultDescription
typeenumYeslookup, timeseries, analytics, realtime
descriptionstringNoDocuments intent for Portal and catalog
configobjectVariesType-specific configuration (see below)
FieldTypeRequiredDefaultDescription
index_columnsstring[]NoPrimary key columnsColumns to index in PostgreSQL
history_modeenumNocurrentcurrent = latest state only (upsert). type_2 = SCD Type 2 with effective_from/effective_to/is_current. type_3 = previous-value columns.
tracked_columnsstring[]If history_mode is not currentColumns whose changes trigger a new historical record
FieldTypeRequiredDefaultDescription
time_columnstringNoFirst date/timestamp columnColumn for hypertable partitioning
chunk_intervalstringNo1 dayTimescaleDB chunk size
continuous_aggregateslistNononeList of aggregate definitions (auto-created)

No configuration needed. The platform registers the Iceberg table in the StarRocks External Catalog automatically.

FieldTypeRequiredDefaultDescription
key_templatestringYesRedis key pattern. Use {column_name} placeholders.
ttldurationNo24hTime-to-live for Redis keys. Format: 1h, 24h, 7d.
include_columnsstring[]NoAll columnsSubset of columns to store (reduces memory)

Optional Superset integration. When enabled, the platform creates or updates a Superset dataset, applies RLS filters, and optionally provisions a dashboard.

FieldTypeRequiredDefaultDescription
visualization.enabledboolNofalseEnable Superset integration
visualization.dashboard_templatestringNoPlatform-provided template name
visualization.refresh_intervaldurationNoSuperset cache refresh interval