Streaming SQL on AI Call Data With RisingWave (vs. Materialize) in 2026
By Sagar Shankaran, Founder of CallSphere
RisingWave 2026 ships native vector support, openai_embedding(), an MCP server, and Iceberg sinks. Materialize is the BSL alternative. We benchmark both for AI call analytics — incremental views, streaming joins, and live dashboards.
Key takeaways
TL;DR — RisingWave (Apache 2.0) and Materialize (BSL) both materialize SQL views incrementally over streams. RisingWave's 2026 advantage: native MCP server + openai_embedding() + Iceberg sinks. For AI call analytics that's the right tradeoff. CallSphere uses RisingWave to keep live dashboards and AI agents reading the same incremental views.
Why this pipeline
Postgres can't keep up with "average sentiment by vertical for the last 60 minutes, refreshed every second." A streaming database can: define the SQL once, the engine maintains the result incrementally as new rows arrive.
RisingWave 2026 leans into AI: native pgvector-compatible types, openai_embedding() UDF, and an official MCP server so AI agents query live materialized views. Materialize stays SQL-pure and BSL-licensed.
Architecture
flowchart LR
Kafka[(Kafka<br/>call.completed)] --> RW[(RisingWave<br/>materialized views)]
PG[(Postgres CDC<br/>customers)] --> RW
RW -->|live MV| Dash[Grafana / Metabase]
RW -->|MCP| AGT[Internal AI agent]
RW -->|Iceberg sink| Lake[(S3 / Iceberg)]
The engine joins a Kafka stream with a Postgres CDC dimension table and serves both the dashboard and the AI agent from the same view.
CallSphere implementation
Explore a live demo and compare current plans to find the right fit for your business.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
Build steps with code
- Spin up RisingWave (single binary or Helm).
- Create a source for Kafka (
call.completed) and a Postgres CDC source (customers). - Materialize a view that joins them and rolls up sentiment by vertical.
- Test latency — should refresh in < 500 ms after a new event.
- Wire the MCP server so Claude / your agent can read the view directly.
- Sink to Iceberg for cold storage.
- Monitor lag — RisingWave exposes
SHOW STREAMING JOBSand Prometheus metrics.
CREATE SOURCE call_completed (...) WITH (
connector = 'kafka',
topic = 'call.completed',
properties.bootstrap.server = 'kafka:9092'
) FORMAT PLAIN ENCODE JSON;
CREATE MATERIALIZED VIEW sentiment_by_vertical_5m AS
SELECT
vertical,
window_start,
AVG(sentiment_score) AS avg_sent,
COUNT(*) AS n
FROM TUMBLE(call_completed, ts, INTERVAL '5 MINUTES')
GROUP BY vertical, window_start;
-- Vector search on transcript chunks
CREATE TABLE chunk_embeddings (
chunk_id UUID,
call_id UUID,
embedding REAL[]
);
SELECT chunk_id, embedding <-> openai_embedding('refill request') AS dist
FROM chunk_embeddings
ORDER BY dist
LIMIT 5;
Pitfalls
- Re-materializing on every query — incremental MV is the whole point; query
SELECT *from the MV, not the source. - Large state without spill — long windows blow memory; configure
state-backend=hummockand SSD. - CDC lag — Postgres logical replication can fall behind; monitor
pg_replication_slots. - Treating MV as a database — RisingWave is for derived state; OLTP belongs in Postgres.
- MCP without auth — always front the MCP server with auth; don't expose internal data to public agents.
FAQ
Why not Flink? Flink is a more general processing engine; RisingWave / Materialize are SQL-first databases. Pick the database when 90% of logic is SQL.
Cost? RisingWave Cloud starts at ~$300/mo for the entry tier; self-host on a single 16-core box handles 50k events/sec.
Materialize when? When BSL is acceptable, you don't need MCP, and you value strict consistency.
Vector search performance? RisingWave HNSW indexes do sub-50 ms search on 10M vectors.
Iceberg sink durability? RisingWave commits Iceberg snapshots every minute by default; tune with commit.interval.
Sources
- RisingWave Streaming Database Landscape 2026
- Materialize vs RisingWave (Materialize)
- Materialize Alternatives 2026 (RisingWave)
- MCP Streaming Database (RisingWave)
- Event-Driven Architecture 2026 (RisingWave)
Streaming SQL on AI Call Data With RisingWave (vs. Materialize) in 2026: production view
Streaming SQL on AI Call Data With RisingWave (vs. Materialize) in 2026 ultimately resolves into one engineering question: when do you use the OpenAI Realtime API versus an async pipeline? Realtime wins on latency for live calls. Async wins on cost, retries, and structured tool reliability for callbacks and SMS flows. Most teams need both, and the routing layer between them becomes the most load-bearing piece of the stack.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
Serving stack tradeoffs
The big fork is managed (OpenAI Realtime, ElevenLabs Conversational AI) versus self-hosted on GPUs you operate. Managed wins on cold-start, model freshness, and zero-ops; self-hosted wins on unit economics past a certain conversation volume and on data residency for regulated verticals. CallSphere runs hybrid: Realtime for live calls, self-hosted Whisper + a hosted LLM for async, both routed through a Go gateway that enforces per-tenant rate limits.
Latency budgets are non-negotiable on voice. End-to-end target is sub-800ms ASR-to-first-token and sub-1.4s first-audio-out; anything beyond that and turn-taking feels stilted. GPU residency in the same region as your TURN servers matters more than choosing a slightly bigger model.
Observability is the unglamorous backbone — every conversation produces logs, traces, sentiment scoring, and cost attribution piped to a per-tenant dashboard. HIPAA aligned isolation keeps healthcare traffic separated from salon traffic at the storage layer, not just the API.
FAQ
Is this realistic for a small business, or is it enterprise-only? 57+ languages are supported out of the box, and the platform is HIPAA aligned, which removes most of the procurement friction in regulated verticals. For a topic like "Streaming SQL on AI Call Data With RisingWave (vs. Materialize) in 2026", that means you're not starting from scratch — you're configuring an agent template that's already been hardened across thousands of conversations.
Which integrations have to be in place before launch? Day one is integration mapping (scheduler, CRM, messaging) and prompt tuning against your top 20 real call transcripts. Day two through five is shadow-mode running, where the agent transcribes and recommends but a human still answers, so you can compare side-by-side. Go-live is the moment your eval pass-rate clears your internal bar.
How do we measure whether it's actually working? The honest answer: it scales until your tool catalog gets stale. The agent is only as good as the integrations it can actually call, so the operational discipline is keeping schemas, webhooks, and fallback paths green. The platform handles the rest — observability, retries, multi-region routing — without your team owning the GPU layer.
Talk to us
Explore a live demo and compare current plans to find the right fit for your business.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
Try CallSphere AI Voice Agents
See how AI voice agents work for your industry. Live demo available -- no signup required.