Completed

Go Observability Demo

A distributed tracing demo built using Go, OpenTelemetry and Jaeger, demonstrating trace propagation across multiple services.

Overview

This project demonstrates distributed tracing across two Go services using OpenTelemetry and Jaeger. A request received by the API Service is traced through the order processing flow and into the Order Service using trace context propagation.

Architecture

Client
  |
  | POST /orders
  v
API Service (:8080)
  |
  | HTTP + Trace Context
  v
Order Service (:8082)
  |
  v
OpenTelemetry
  |
  v
Jaeger (:16686)

Key Features

Distributed Trace

A request to the API Service creates a distributed trace that continues into the Order Service.

api-service POST /orders
    |
    +-- process-order
    |
    +-- api-service HTTP POST
            |
            +-- order-service POST /process

Tech Stack

GoGinOpenTelemetryJaegerOTLPDocker

Result

The implementation successfully demonstrates how a single request can be traced across service boundaries. The API Service and Order Service appear under the same Trace ID in Jaeger, making it possible to follow the complete request flow.