GUIDE

Building an Operational Data Layer

An operational data layer provides fresh, queryable views of business data for applications and AI agents. Learn how to build one using streaming SQL, materialized views, and CDC — without complex infrastructure.

Always Fresh
No Batch Gaps
Continuously updated as source data changes — no stale windows, no manual refresh needed
SQL
Single Interface
Define sources, transformations, and queries all with standard PostgreSQL-compatible SQL
Unified
Multi-Source Joins
Join data from PostgreSQL, Kafka, MySQL, and more into a single queryable layer
Simple
One System
Replaces Kafka + Flink + Redis + API layer with a single streaming database

Architecture

How does a streaming database enable an operational data layer?

A streaming database like RisingWave ingests data continuously from sources such as Kafka topics and PostgreSQL CDC streams, maintains materialized views that update incrementally, and serves query results through a PostgreSQL-compatible interface. This eliminates the need to stitch together separate ingestion, processing, storage, and serving systems.

ApproachComponentsFreshnessComplexity
Traditional ETLAirflow + Spark + Warehouse + CacheHoursVery High
Kafka + Flink + DBKafka + Flink + Redis/PostgresSecondsHigh
RisingWaveRisingWave (single system)MillisecondsLow
  • No separate stream processor — RisingWave handles ingestion and computation
  • No external cache — materialized views serve as the query layer directly
  • No orchestrator — streaming pipelines run continuously without scheduling
  • No state store — RisingWave manages state internally with automatic checkpointing

Capabilities

What is an operational data layer and why do modern applications need one?

An operational data layer is a continuously updated data tier that sits between your source systems and the applications that consume data. Unlike a data warehouse optimized for historical analytics, an operational data layer serves fresh, pre-computed results to live applications, internal tools, AI agents, and customer-facing dashboards — all without overloading your primary databases.

Read Offloading

Move complex read queries off your primary database. Serve pre-computed results from materialized views instead.

Data Unification

Join data from multiple sources — PostgreSQL, Kafka, MySQL — into a single queryable layer with SQL.

Always Fresh

Continuously updated as source data changes. No batch schedules, no stale windows, no manual refresh.

PostgreSQL Interface

Query via standard PostgreSQL protocol. Works with every existing tool, ORM, and application framework.

Getting Started

How do you build an operational data layer with RisingWave?

Building an operational data layer with RisingWave takes three steps: connect your data sources with CREATE SOURCE, define your business logic as materialized views with CREATE MATERIALIZED VIEW, and point your applications at RisingWave using any PostgreSQL client. The entire setup uses standard SQL with no custom code or infrastructure to manage.

  • Combine user events from Kafka with user profiles from PostgreSQL CDC in a single materialized view
  • Pre-compute dashboard metrics that update in real-time without expensive ad-hoc queries
  • Feed AI agents with fresh business context by querying materialized views directly
  • Replace custom application caching layers with always-fresh materialized views

Frequently Asked Questions

What is an operational data layer?
How is an operational data layer different from a data warehouse?
Can RisingWave replace my application database for read queries?
What data sources can feed an operational data layer in RisingWave?

Ready to build your operational data layer?

Start serving fresh data to your applications with SQL in minutes.

Build Your Operational Data Layer
Best-in-Class Event Streaming
for Agents, Apps, and Analytics
GitHubXLinkedInSlackYouTube
Sign up for our to stay updated.