Product, order and inventory services behind Spring Cloud Gateway (WebMVC), configuration from a Config Server, discovery with Eureka, a Resilience4j circuit breaker on order -> inventory and Brave tracing. Run as six plain jars; output/ holds real transcripts (config, registry, requests, trace propagation, circuit breaker, startup race and the load-balanced RestClient.Builder trap). Dockerfile and docker-compose.yml are included but were not run. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HhW8LD8r3EigoBaCGrQZx5
22 lines
2.3 KiB
Plaintext
22 lines
2.3 KiB
Plaintext
# GET /api/orders/ready through the gateway, every 2 seconds, starting the moment the last service reported healthy.
|
|
# 200 means the gateway can route to the order service AND the order service can reach product and inventory.
|
|
|
|
/api/products/1 t+ 1s HTTP 200 {"id":1,"name":"Mechanical keyboard","price":89.90}
|
|
/api/inventory/1 t+ 0s HTTP 200 {"productId":1,"quantity":20,"lowStock":false}
|
|
/api/orders/ready t+ 0s HTTP 500 {"timestamp":"2026-10-21T17:07:18.322Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+ 2s HTTP 500 {"timestamp":"2026-10-21T17:07:20.364Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+ 4s HTTP 500 {"timestamp":"2026-10-21T17:07:22.396Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+ 6s HTTP 500 {"timestamp":"2026-10-21T17:07:24.421Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+ 8s HTTP 500 {"timestamp":"2026-10-21T17:07:26.444Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+10s HTTP 500 {"timestamp":"2026-10-21T17:07:28.466Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+12s HTTP 500 {"timestamp":"2026-10-21T17:07:30.490Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+14s HTTP 500 {"timestamp":"2026-10-21T17:07:32.513Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+16s HTTP 500 {"timestamp":"2026-10-21T17:07:34.542Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+18s HTTP 500 {"timestamp":"2026-10-21T17:07:36.570Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+20s HTTP 500 {"timestamp":"2026-10-21T17:07:38.595Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+22s HTTP 500 {"timestamp":"2026-10-21T17:07:40.634Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+24s HTTP 500 {"timestamp":"2026-10-21T17:07:42.658Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+26s HTTP 500 {"timestamp":"2026-10-21T17:07:44.686Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+28s HTTP 500 {"timestamp":"2026-10-21T17:07:46.709Z","status":500,"error":"Internal Server Error","path
|
|
/api/orders/ready t+30s HTTP 200 {"ready":true}
|