mrkeyoor.com_
Sat 26 Sept 03:39 UTC
Dev Toolsevaluationupdated 26 Sept 2026

microservices-demo review

Online Boutique is an 11-service sample store for learning how a cloud application behaves on Kubernetes. It gives developers a working place to practise service communication, deployment, tracing, and failure handling without starting with a real company's production system.

Verdict

Our checkout service build finished in 36 seconds, but 3 of 5 test checks failed on a status.Errorf format-string error, so Online Boutique is better classroom infrastructure than copy-ready application code. Use it to teach Kubernetes, gRPC, deployment variations, and operational tooling across 11 services. Do not use its mock payment, shipping, email, or account model as the base for a real store.

We ran it

Lab card: what happened when we ran microservices-demoScreenshot of microservices-demo (cymbal-shops.retail.cymbal.dev)
Install✓ · 23s229 packages
Build✓ · 36s
Tests✗ · 11s2 passed · 3 failed of 5 (go test)
Repo364 files~24,093 lines of source · 12.7 MB · 9 CI workflows · Dockerfile

Answers from our run

Does microservices-demo build from source?

Dependencies installed in 23 seconds (229 packages), and the build succeeded in 36 seconds. We cloned commit 38e7348 into a clean Debian container with 3 CPUs and no project-specific setup.

Do microservices-demo's tests pass?

Not all of them: 2 of 5 passed and 3 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use microservices-demo?

Teams looking for a commerce starter: the README says there is no signup or login, while payment, shipping, and email are mocks.

What are the alternatives to microservices-demo?

OpenTelemetry Demo, AWS Retail Store Sample App, .NET eShop. Our checkout service build finished in 36 seconds, but 3 of 5 test checks failed on a `status.

Setup3/5Checkout builds, but full setup needs Kubernetes and several tools
Docs5/5Clear GKE, local cluster, Skaffold, and variation guides
Community5/521,002 stars with a September 2026 push and release
Maturity4/5Long-running sample with active releases; checkout checks failed

Discussed on

  1. hnSample cloud-native application with microservices231 points

Who it’s for

Platform engineers teaching Kubernetes, service meshes, or cloud operations with a complete application.
Developers who learn better by tracing one purchase across several services than by reading isolated examples.
Workshop authors who need a disposable store with a load generator and several deployment variations.
Teams comparing GKE with another Kubernetes cluster using the same sample workload.

Who it’s NOT for

Teams looking for a commerce starter: the README says there is no signup or login, while payment, shipping, and email are mocks.
Developers who want a small local example: the documented Minikube path asks for 4 CPUs, 4 GiB of memory, and 32 GB of disk.
Teams standardizing on one language or runtime: the 11 core services span Go, C#, Node.js, Python, and Java.
Buyers who need the checkout service to pass its current Go checks unchanged: our commit 38e7348 test run failed on a non-constant format string in status.Errorf.

Setup reality

Our checkout service run installed 229 packages in 23 seconds and built in 36 seconds. Tests then failed in 11 seconds: 2 passed and 3 failed out of 5. The log shows a non-constant format string passed to status.Errorf in main.go; it does not show any other cause.

Running the full application needs Kubernetes, kubectl, Skaffold, Docker, and either a local cluster or a Google Cloud project. The GKE route also needs gcloud, enabled APIs, cluster credentials, and an Artifact Registry for development builds.

The local guide budgets at least 4 CPUs, 4 GiB of memory, and 32 GB of disk for Minikube. Our lab only exercised ./src/checkoutservice/ in a 3-CPU, 8 GB Debian container, so it did not prove that all 11 services deploy together.

Eleven services make a teaching system, not a shop foundation

Online Boutique connects 11 microservices over gRPC and wraps them in a store you can click through. A browser request can cross a Go frontend, a C# cart, Node.js currency and payment services, Python recommendation and email services, and a Java ad service. That variety gives a platform workshop enough seams to demonstrate tracing, service discovery, deployment policy, and a failure in one dependency. It also gives a new contributor five language ecosystems to understand.

The store boundary matters more than the polished screenshot. The project README says the frontend creates sessions automatically and has no signup or login. Payment, shipping, and email are mocks. Product data starts in a JSON file, while the currency service fetches real rates. Those choices are sensible for a disposable demo, but they leave out identity, order durability, refunds, fraud checks, and the other work that makes commerce software costly.

The 11-service design gives platform tools something real to touch

A single toy API cannot show a useful service mesh. Online Boutique has 11 core services, Protocol Buffer contracts, a Redis-backed cart, a load generator, and a checkout service that coordinates several downstream calls. The repository also includes Kubernetes manifests, Helm and Terraform paths, plus Kustomize variations for concerns such as a service mesh and Google Cloud operations. You can change infrastructure behavior while keeping the visible shopping flow recognizable.

The breadth is also the tax. Go, C#, Node.js, Python, and Java each bring their own dependency and build conventions. A lesson about one failed request may cross several runtimes before it reaches the browser. That is useful when the subject is platform engineering. It is wasteful when you only need a short gRPC example or a starter for one service. The repository should be treated as a system to operate, not a library to import.

What happened when we ran it

Our run at commit 38e7348 focused on ./src/checkoutservice/ inside a fresh Debian container with 3 CPUs and 8 GB of RAM. Installation succeeded in 23 seconds and pulled 229 packages. The checkout service built successfully in 36 seconds. The full checkout was 12.7 MB with 364 files and about 24,093 lines of source, while our scan found 9 CI workflow files and a Dockerfile.

The test step failed after 11 seconds, with 2 checks passing and 3 failing out of 5. Go reported main.go:240:45: non-constant format string in call to google.golang.org/grpc/status.Errorf, then marked the checkout service package as a build failure. The money package passed in 0.008 seconds. That log supports a narrow conclusion: the tested checkout commit did not clear its Go test command in our sandbox. It does not explain why the offending call remained in the release.

Our test method did not start a Kubernetes cluster, build every service, or send a purchase through the deployed shop. It measured the Go checkout project named in the lab target. The passing 36-second build therefore should not be read as proof that all 11 containers, the Redis deployment, and every optional overlay work together on a new cluster. Those are separate checks for your own environment.

Local deployment asks for 32 GB of disk and Kubernetes

The development guide asks Minikube users for at least 4 CPUs, 4 GiB of memory, and 32 GB of disk. Docker Desktop users are told to allocate at least 3 CPUs, 6 GiB of memory, and the same 32 GB. Skaffold builds and deploys the images, and the guide warns that its first local run can take about 20 minutes. This is a realistic lab allocation, not a tiny sample you start with one binary.

The GKE quick start trades local capacity for cloud setup. You need a Google Cloud project, gcloud, kubectl, an enabled GKE API, a cluster, and its credentials. Development builds add Artifact Registry configuration. The default application can run on any Kubernetes cluster, but several documented variations demonstrate Google products. Budget both cloud charges and cleanup time, then delete the cluster when the exercise ends.

September 2026 activity supports teaching, not production reuse

GitHub recorded the last push on September 19, 2026, one day after release v0.10.7. The repository had 21,002 stars, 71 combined issues and pull requests, and 40 open issues when fetched. Release v0.10.7 consisted of more than 42 dependency updates, including fixes and security patches. That is active maintenance, and the open dependency dashboard shows automated updates across the many runtimes.

Maintenance cannot change the project's purpose. Online Boutique is a well supplied target for Kubernetes classes, SRE exercises, and vendor demonstrations because its 11 services create enough operational behavior to inspect. Our failed checkout tests are a reason to pin a commit and run the checks before a workshop. The mock business functions are a stronger reason to stop there: learn from the deployment, then build real commerce requirements somewhere else.

Alternatives

ProjectWhat it isPick it when
OpenTelemetry DemoA polyglot microservice shop built around telemetry signals and failure scenarios.pick this instead when instrumenting traces, metrics, and logs is the lesson you need to teach.
AWS Retail Store Sample AppA retail sample designed for container-platform demonstrations in the AWS ecosystem.pick this instead when your workshops and deployment examples need to center on AWS services.
.NET eShopA reference commerce application for .NET and cloud-native application patterns.pick this instead when one .NET-centered reference application is more useful than five language stacks.

What people are saying

  1. [github-trending] GoogleCloudPlatform/microservices-demo

Sources

  1. Online Boutique README
  2. Online Boutique development guide
  3. Release v0.10.7
  4. Dependency dashboard issue 728
  5. Measured commit 38e7348
  6. MrKeyoor test method

More dev tools reviews

Claude-Code-Usage-Monitor · pyxel · dust · kubernetes-the-hard-way · wifit3 · badnotes · the whole board →