We use analytics cookies.We use cookies to analyze site traffic and improve your experience.
Loading...
System Design Masterclass · Observability Monitoring
Free preview: the first 2 parts of this 7-part lesson.
Already bought the course? Sign in to read the whole lesson.
this lesson is part of
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design courseread the rest of this lesson in
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design coursein Observability Monitoring
This lesson is part of the full System Design Masterclass. Unlock it along with 769 other lessons for a one-time payment.
One-time payment by card or PayPal
Get Lifetime AccessOne-time payment: UPI, card or netbanking
Get Lifetime Access18 Foundation lessons are free, no payment needed. Try them now
It is easy and good
“It is really nice and good Please join the course”
In 2010, Google published a paper describing Dapper, their internal distributed tracing system. Twitter read that paper and built Zipkin, an open-source implementation inspired by Dapper's design. Released in 2012, Zipkin was the first widely available distributed tracing system and established the core concepts that every tracing tool still uses: traces, spans, annotations, and context propagation.
For years, Zipkin was the only game in town. Companies like Netflix, Uber, and Airbnb started with Zipkin before building or adopting alternatives. The B3 propagation format (used for context propagation) was Zipkin's invention and is still supported by nearly every tracing tool for backward compatibility.
Zipkin is simpler and more lightweight than Jaeger. It's a single Java application with an embedded storage engine, a , and a web UI. You can have distributed tracing running in 10 minutes with a single Docker container.
Zipkin is architecturally simpler than Jaeger:
| Component | Role |
|---|---|
| Collector | Receives spans via or Kafka |
| Storage | In-memory (testing), MySQL, Cassandra, |
| API | for querying traces |
| Web UI | Service dependency graph, trace search, waterfall view |
All components run in a single process. No separate agents, no separate query service. Deploy one Zipkin container, point your services at it, and you have tracing.
Zipkin supports three span transport mechanisms: HTTP POST directly to the Zipkin API, (for buffered, high-volume ingestion), and AMQP (RabbitMQ).