Demos & examples

See every principle, live.

23 scripts under examples/lgtm-datamesh/demos/ exercise the data-mesh reference end to end. Each one is mapped to the principle it demonstrates β€” domain ownership, data as a product, self-serve platform, or federated governance.

The five-act walkthrough

walkthrough.sh orchestrates five acts β€” trace, scale, canary, lineage, topology β€” each shelling out to an existing demo script with narration between them. Press Enter to advance between acts.

cd examples/lgtm-datamesh && ./demos/walkthrough.sh

Data as a product

These demos exercise the contract, catalog, and discovery surfaces that make each domain's data discoverable, addressable, and trustworthy.

Self-serve data platform

These demos show the platform delivering capabilities by declaration β€” operators provision databases, message buses, and autoscalers; the observability stack surfaces metrics, traces, and topology.

Self-serve platform · Kafka

Async spine (Kafka events)

order-service publishes order.placed; notification-service consumes it. The Strimzi operator delivers the Kafka cluster by declaration.

§6 Data planes · Source ↗
Self-serve platform · Postgres

Durable notifications (Postgres)

Alembic migration, persisted events, survives restart. The CloudNativePG operator delivers the database by declaration.

§4, §6 · Source ↗
Self-serve platform · KEDA

Kafka consumer-lag scaling

notification-service scales from zero on Kafka lag, then back to zero when caught up. Elastic data products by declaration.

§8 Elastic & resilient · Source ↗
Self-serve platform · KEDA HTTP

HTTP request scaling (KEDA)

graphql-gateway scales from zero on HTTP request concurrency via the KEDA HTTP add-on. Zero cost when idle, instant wake on demand.

§8 · Source ↗
Self-serve platform · Prometheus

Metrics stack health

Prometheus scraping capstone targets, Grafana dashboard provisioned with mesh and request-rate panels. The platform delivers observability.

§9 Observability · Source ↗
Self-serve platform · Tempo

Trace backend health (Tempo)

Tempo up, Grafana datasource wired, synthetic span ingested and queried back. The trace pipeline works before you send real traffic.

§9 · Source ↗
Self-serve platform · traces

End-to-end trace across products

A GraphQL query fans out to three services; the trace lands in Tempo with cross-product spans. Distributed tracing as a platform feature.

§9 · Source ↗

Running a demo

All demos assume you are in the examples/lgtm-datamesh/ directory with kubectl context set to capstone. See the setup & prerequisites page for installation and bootstrap.

cd examples/lgtm-datamesh
./demos/demo-order.sh

What to look at after running a demo

The tools are NodePorts published on 127.0.0.1 when the capstone profile is created, so the URLs below are available as soon as the stack is up. Run ./scripts/show-endpoints.sh to see which are reachable. Ports are fixed at creation; recreate an older profile with ./scripts/setup-capstone-profile.sh --replace. --replace deletes and recreates the cluster, so run ./scripts/bootstrap-capstone.sh again afterwards.

  • Grafana β€” dashboards for request rate, canary weight, KEDA replicas: http://127.0.0.1:3000
  • Kiali β€” live mesh topology graph: http://127.0.0.1:20001/kiali
  • Tempo β€” distributed traces: open Grafana → Explore → select the Tempo datasource (or direct: http://127.0.0.1:3200)
  • OpenMetadata β€” catalog and lineage: http://127.0.0.1:8585

Restoring baseline

The demo scripts clean up their own releases on success. After running several, shared services may be missing. To put the workloads back in bootstrap state:

./scripts/restore-baseline.sh