This repository contains a collection of microservices examples and supporting artifacts.
The ecommerce/ project is a constructed running example used to explain the UncerMaster vision (uncertainty-driven system-level testing and fuzzing for microservices).
- The UncerMaster framework itself is not implemented in this repository.
- The e-commerce system and scenarios are intentionally simplified and are not meant to be production-correct or feature-complete.
- The included scripts simulate uncertainty and system-level fault patterns (e.g., external dependency timeouts, long-tail latency, partial progress) to demonstrate how an uncertainty-aware testing loop could be exercised.
See ecommerce/README.md for the service architecture and full project details.
All scripts below are located under ecommerce/scripts/.
- JDK 17
- Maven 3.9+
- Docker (for Postgres + Kafka)
- Python 3 (for local HTTP mocks)
From the repository root:
cd ecommercebash scripts/demo-compound-uncertainty.shWhat it targets:
- Partial progress along
order-confirmation-service -> shipping-service -> external logisticswhen downstream calls are slow/failing. - Missing tracking ids when the external logistics dispatch endpoint returns slowly, fails, or returns no tracking id.
How it works:
- Replaces external currency-exchange and logistics endpoints with local mocks that inject latency and failures.
- Generates concurrent checkout+payment flows to create Kafka load.
- Queries order-confirmation and shipping APIs to summarize partial progress and missing tracking ids.
bash scripts/demo-fx-fallback-step.shWhat it targets:
- User-visible quote step changes when
checkout-serviceintermittently fails to fetch currency-exchange rates and falls back to a predefined rate.
How it works:
- Runs a local Frankfurter-like FX mock with injected failures.
- Disables FX caching to amplify the effect.
- Repeats identical checkout requests and reports the distribution of returned
exchangeRateand totals.
bash scripts/demo-fraud-threshold-sensitivity.shWhat it targets:
- Decision instability for threshold-based fraud inference when the score is near a boundary and inference depends on evolving state (e.g., history-driven features).
How it works:
- Sends repeated payment requests for the same user with a constant amount.
- Observes the returned
riskScoreandstatusdistribution and counts decision flips.
Notes:
- These are simulated demonstrations intended to support a vision paper.
- They are not security tests and do not claim to detect vulnerabilities.