How elastic/opentelemetry-demo works
This repository is an OpenTelemetry-instrumented online-store demo, adapted to demonstrate Elastic Observability. A shopper browses products and ads, manages a cart, and places an order; checkout coordinates cart, payment, shipping, and order confirmation, with optional Kafka post-processing. Other services provide currency conversion and recommendations, while feature flags can influence service behavior. The README describes EDOT and upstream Collector modes forwarding telemetry to Elastic. Some frontend and service wiring is documented by the product structure rather than sampled source, so uncertain links are omitted.
Main entry points: api Store APIs · checkout/main.go Checkout · Program.cs Cart Service · product-catalog/main.go Product Catalog
Components 22
Storefront
- Web Store
src/frontend/pages/index.tsx - Store APIs
src/frontend/pages/api
Commerce Services
- Product Catalog
src/product-catalog/main.go - Catalog Database
- Ad Service
src/ad/src/main/java/oteldemo/AdService.java - Cart Service
src/cart/src/Program.cs - Cart Store
src/cart/src/cartstore/ValkeyCartStore.cs - Currency Service
src/currency/src/server.cpp - Recommendations
src/recommendation/recommendation_server.py
Order Operations
- Checkout
src/checkout/main.go - Payment Service
src/payment/index.js - Shipping Service
src/shipping/src/main.rs - Quote Service
src/quote/app/routes.php - Email Service
src/email/email_server.rb - Order Kafka
src/checkout/kafka/producer.go - Accounting Consumer
src/accounting/Program.cs - Fraud Detection
src/fraud-detection/src/main/kotlin/frauddetection/main.kt
Observability
- Feature Flag UI
src/flagd-ui/lib/flagd_ui_web/controllers/feature_controller.ex - Flag Storage
src/flagd-ui/lib/flagd_ui/storage.ex - OTel Collector
- Elastic Observability
Other components
- Shopper
Connections 23
- Shopper → Web Store: browses
- Web Store → Store APIs: requests
- Store APIs → Product Catalog: queries
- Store APIs → Ad Service: requests ads
- Store APIs → Cart Service: manages cart
- Store APIs → Currency Service: converts prices
- Store APIs → Recommendations: requests suggestions
- Store APIs → Checkout: places order
- Product Catalog → Catalog Database: queries
- Cart Service → Cart Store: reads and writes
- Checkout → Cart Service: gets and empties cart
- Checkout → Payment Service: charges payment
- Checkout → Shipping Service: ships order
- Checkout → Email Service: sends confirmation
- Checkout → Order Kafka: publishes order
- Order Kafka → Accounting Consumer: delivers orders
- Order Kafka → Fraud Detection: delivers orders
- Shipping Service → Quote Service: requests quote
- Feature Flag UI → Flag Storage: reads and writes
- Product Catalog → OTel Collector: exports telemetry
- Cart Service → OTel Collector: exports telemetry
- Checkout → OTel Collector: exports telemetry
- OTel Collector → Elastic Observability: forwards telemetry