Kafka vs Temporal: When to Use Each, and When to Use Both
Kafka is a durable event stream; Temporal is a workflow orchestrator. Learn which solves your problem and why many teams use them together.
ClickhouseProblem & solution
Shopify rebuilt its observability infrastructure after metrics, logs, and traces became fragmented across vendors, with unpredictable costs and limited cross-signal analysis. It created Observe, a unified platform that runs metrics, logs, traces, profiles, and exceptions on self-hosted ClickHouse, treating them as structured, time-ordered, high-dimensional events and serving roughly 50 million events per second normally and 100 million at BFCM peak, or about 110 GB/s. Kafka buffers telemetry for large synchronous durable writes, while materialized views support flexible schemas, autocomplete, typed hot keys, and identifier-based correlation; the latter reportedly makes targeted searches 10x faster. Shopify reports a 16x query improvement out of the box, exceeding 30x at peak performance, with data queryable in under a minute, and says it would likely choose ClickHouse Cloud if starting again because managed operations could reduce the self-hosting burden.
Shopify’s observability setup was split across separate vendors for metrics, logs, and traces. Costs were growing unpredictably, related signals were difficult to query together, and external product roadmaps constrained the team. The platform also needed to handle global-scale commerce, BFCM traffic, constantly changing schemas, and queries across very large telemetry volumes.
Shopify built Observe as a unified internal observability platform on self-hosted ClickHouse, consolidating metrics, logs, traces, profiles, and exceptions. Kafka buffers telemetry before large synchronous writes, while materialized views support flexible schemas, typed hot keys, autocomplete, and request-based correlation. An in-house Kubernetes operator manages schema and topology changes while ingestion continues.
Shopify reports a 16x query improvement from ClickHouse out of the box, with performance exceeding 30x under peak conditions.
Kafka buffering lets Shopify combine large ClickHouse writes with durability: batches are acknowledged only after ClickHouse has stored them.
Materialized views make flexible-schema telemetry faster to query and provide a correlation lookup that reportedly turns fleet-wide searches into targeted scans, delivering a 10x speedup.
Summaries are generated from the original by a language model. Check the original before relying on it.
See the idea
Kafka is a durable event stream; Temporal is a workflow orchestrator. Learn which solves your problem and why many teams use them together.
Kafka is a distributed event streaming platform that ingests, buffers, and distributes high-volume data streams in real time, enabling applications to publish, subscribe, and process continuous event flows reliably.
Keep reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
One useful email. Unsubscribe anytime.