Template 01 · Cosmic
Quix · Cinematic Series

A short story about streaming data.

A keynote-style opener — large display type, drifting nebulae, soft gradient mesh, letter-by-letter reveals. For audience-facing moments where the first impression has to land.

01

The pipeline problem.

Why real-time systems break the assumptions that batch architectures were built on.

Core idea

State is the bottleneck, not throughput.

Most teams scale compute first and discover, six months later, that the real ceiling is how state is stored, shared, and replayed across operators. The fix is architectural, not infrastructural — and it's the part nobody puts on a slide.

This template demonstrates how body copy, headings, and emphasised metrics share the same page without competing.

latency p99 = 42ms throughput = 1.2M msg/s state size = 18 GB SLA met
Results

Three numbers that explain the shift.

Median latency
42 ms
↓ 78% vs. batch
Cost per million events
$0.18
↓ 64% vs. v0
Streaming isn't faster batch. It's a different shape of problem.
— principal engineer, infra team
Agenda

What we'll cover.

01 Why streaming breaks batch assumptionsThe mental model shift, in one diagram. 12 min
02 State as a first-class objectHow operator state shapes everything downstream. 18 min
03 Failure modes nobody documentsThe three bugs that kill production pipelines. 15 min
04 Live walkthrough · Q&AEnd on something working, not something theoretical. 20 min
Your host
JB
Speaker · Quix

Javier Blanco.

Engineer, writer, and reluctant ops person.

  • Eight years building streaming systems in production.
  • Burned by Kafka in three different ways. Still recommends Kafka.
  • Lives at javier@quix.io when not breaking pipelines.
What we built

Three pieces, one system.

Each card describes one capability — short headline, three lines of body, accent rotation across blue, purple, orange.

Stateful operators

Rocks-backed key/value state replicated across the cluster. Exactly-once semantics, no manual checkpoint dance.

Adaptive backpressure

Watermarks propagate upstream automatically. The system slows itself before it has to drop or buffer.

Materialized views

Continuously updated derived tables, queryable from SQL. The dashboard reads from state, not from history.

Before / After

What the rewrite actually changed.

Before · v0

Batch on a schedule.

  • 15-minute pipeline cadence.
  • Recovery measured in tens of minutes.
  • State rebuilt from scratch on every job.
  • Dashboards lagged behind reality.
vs
After · v1

Continuous and stateful.

  • Sub-second event-to-view latency.
  • Recovery in seconds, not minutes.
  • State held in the operator, not the DB.
  • Dashboards reflect live system state.
Live code

Five lines, one streaming aggregation.

1# pipeline.py · sliding window over click events
2from quixstreams import Application
3
4app = Application(broker_address="localhost:9092")
5sdf = app.dataframe(topic=app.topic("clicks"))
6out = sdf.tumbling_window(60).count().final()
7out.to_topic(app.topic("clicks_per_minute"))
8app.run() # exactly-once, no checkpoint config needed

The whole pipeline, in the language the data team already speaks.

How it works

From raw event to live view in four steps.

01

Ingest

Producers write to a Kafka topic. Schema enforced at the broker.

02

Transform

Streaming SQL filters, joins, and enriches each event in flight.

03

Aggregate

Windowed counts and reductions held in stateful operators.

04

Serve

Materialized views surface to dashboards and downstream consumers.

Key takeaways

Four things to remember when the slides are gone.

01 State is the bottleneck.Compute scales horizontally. State doesn't, until you treat it as a primary object.
02 Backpressure is a design choice.If you didn't pick where it accumulates, the system picked for you — usually the worst place.
03 Recovery time defines availability.p99 latency is what your users see. MTTR is what your on-call sees. Both are the same problem.
04 Document the thing you wish someone handed you.The runbook you write at 2am is the only one anyone ever reads.
End of deck

Questions?
Let's talk.

Emailjavier@quix.io Slidesquix.io/webinar GitHubgithub.com/quixio
← → navigate