Java microservices demo
A real HoundOS analysis — services detected, SLOs recommended and agreed, instrumentation PRs opened. Static snapshot; sign in to run this on your repos.
How far the observability PRACTICE has progressed — a ladder of levels, each gated on the one below.
- L5 Optimizing — drift-managed, improving
- L4 Operationalized — dashboards + burn alerts live
- L3 Standardized — signals verified, OTel-native
- L2 Instrumented — SLOs agreed, instrumentation merged
- L1 Foundation — analyzed — gaps known
How good the CURRENT instrumentation is, scored 0–100 independently of which level you have reached.
- 81–100 healthy
- 51–80 needs attention
- 0–50 at risk
Entities (8)
| Entity | Path | Runtime | Archetype | SLOs |
|---|---|---|---|---|
| Base-domain | base-domain | java | library | 7 agreed |
| Business metrics | . | java | dependency-group | draft |
| Compensating rollback on partial failure | order-service | java | business-flow | 5 agreed |
| Dependencies | . | java | dependency-group | draft |
| Distributed order confirmation (SAGA) | order-service | java | business-flow | 5 agreed |
| Order-service | order-service | java | stream-processor | 5 agreed |
| Payment-service | payment-service | java | stream-processor | 7 agreed |
| Stock-service | stock-service | java | stream-processor | 6 agreed |
Latest report · commit a5981db · Claude
What this repository does
This is a demonstration e-commerce order-processing backend that shows how to complete a purchase reliably across independently owned domains — orders, customer payments, and warehouse stock. When a customer places an order, the system reserves money on the customer's account and products in the store, then either confirms the order or unwinds both reservations so no customer is charged for stock that isn't there. Its users are developers and architects learning distributed-transaction (SAGA) design rather than end customers, since it ships as an article companion project with in-memory data and synthetic account/product seeding. The value delivered is a working reference for eventually-consistent order confirmation without a two-phase commit.
HoundOS analyzed this repo and detected business purpose, end-to-end flows, services, dependencies and more. Based on this analysis, HoundOS identified observability gaps against industry best practices.
We address these observability gaps through a two-pronged approach:
- Auto-instrumentation recommendations: Leveraging OpenTelemetry packages that provide out-of-the-box coverage.
- Custom instrumentation recommendations: For the remaining gaps, specific implementation guidance.
Note: Not all the identified gaps need to be addressed. Application owners can choose what to prioritize. HoundOS can automate the process of generating and applying the recommended changes by opening pull requests for configurations and code, and continuously manage the repo so instrumentation stays aligned with the agreed SLOs as code and config change.
Signalswhat this repo emits or should emit, grouped by the entity that owns it
Trace-context propagation: order-service-payment → service
Propagate W3C trace context across the Order-service → Payment-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Compensating rollback on partial failure" flow.
Trace-context propagation: order-service-stock → service
Propagate W3C trace context across the Order-service → Stock-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Compensating rollback on partial failure" flow.
Trace-context propagation: payment-service-order → service
Propagate W3C trace context across the Payment-service → Order-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Compensating rollback on partial failure" flow.
Trace-context propagation: stock-service-order → service
Propagate W3C trace context across the Stock-service → Order-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Compensating rollback on partial failure" flow.
Trace-context propagation: order-service-payment → service
Propagate W3C trace context across the Order-service → Payment-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Distributed order confirmation (SAGA)" flow.
Trace-context propagation: order-service-stock → service
Propagate W3C trace context across the Order-service → Stock-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Distributed order confirmation (SAGA)" flow.
Trace-context propagation: payment-service-order → service
Propagate W3C trace context across the Payment-service → Order-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Distributed order confirmation (SAGA)" flow.
Trace-context propagation: stock-service-order → service
Propagate W3C trace context across the Stock-service → Order-service messaging boundary: inject traceparent into message headers at the producer; extract it and start the consumer span with that parent, so one trace spans the whole "Distributed order confirmation (SAGA)" flow.
Server request spans (auto-instrumentation)
Server request spans for Order-service (auto-instrumentation once the SDK bootstrap is wired).
backs 6 SLOs
This signal is the measurement source those SLOs read from — their SLIs are computed off the spans it emits.
- order-service-http-availability
- order-service-http-latency-p95
- order-service-http-latency-p99
- order-service-http-error-rate
- order-service-http-auth-failure-rate
- order-service-http-request-rate
Server request spans (auto-instrumentation)
Server request spans for Payment-service (auto-instrumentation once the SDK bootstrap is wired).
Server request spans (auto-instrumentation)
Server request spans for Stock-service (auto-instrumentation once the SDK bootstrap is wired).
Instrumentation pull requests
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicestaged
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicestaged
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicefailed
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicestaged
- C152.6 validation — selection fill (Order-service)#50draft
- C151 recheck — Order-service with the corrected binding-order check#49closed
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicesuperseded
- C150 stepped-loop live check — Order-servicesuperseded
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicefailed
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicefailed
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicefailed
- Add OpenTelemetry instrumentation for 5 SLIs — Order-servicesuperseded