Quarkus Super Heroes, mapped from the code.
Quarkus services in Java and Kotlin with a React UI: REST through Stork, gRPC, and Kafka with Avro. Kuuhaku read its source at commit 409ef05, with no configuration and no hand-fixing, and found 7 services in Java and Kotlin, and 6 connections: 4 over HTTP, 1 through a queue and 1 over gRPC. Each one below says how it was found.
Services
Every repo or deployable the scanner found, with how many connections leave it and reach it.
| Service | Stack | Role | Calls | Called by |
|---|---|---|---|---|
rest_fights | Java · Quarkus | service | 5 | 1 |
event_statistics | Java · Quarkus | worker | 0 | 1 |
grpc_locations | Kotlin · Quarkus | service | 0 | 1 |
rest_heroes | Java · Quarkus | service | 0 | 1 |
rest_narration | Java · Quarkus | service | 0 | 1 |
rest_villains | Java · Quarkus | service | 0 | 1 |
ui_super_heroes | Java · Quarkus | service | 1 | 0 |
Connections
config: the address is written in configuration (an env file, a compose file, a proxy route) and the call is matched to it. inferred: the call's path matches a route of the target and nothing contradicts it. Call sites count the places in the code that make the call.
| From | To | Type | Evidence | Call sites | How it was found |
|---|---|---|---|---|---|
rest_fights | event_statistics | queue | inferred | 1 | 1 queue published by rest_fights, consumed by event_statistics |
rest_fights | grpc_locations | gRPC | config | 1 | quarkus.grpc.clients.locations.host = localhost (port 8089) in the app's properties; Locations client in src/main/java/io/quarkus/sample/superheroes/fight/client/LocationClient.java, served in grpc_locations/src/main/kotlin/io/quarkus/sample/superheroes/location/grpc/LocationGrpcService.kt |
rest_fights | rest_heroes | HTTP | config | 2 | URL worked out at src/main/java/io/quarkus/sample/superheroes/fight/client/HeroRestClient.java:32 |
rest_fights | rest_narration | HTTP | config | 3 | URL worked out at src/main/java/io/quarkus/sample/superheroes/fight/client/NarrationClient.java:37 |
rest_fights | rest_villains | HTTP | config | 3 | stork://villain-service in src/main/resources/application.properties |
ui_super_heroes | rest_fights | HTTP | config | 6 | http://localhost in deploy/docker-compose/java25.yml, 6 call paths match its routes |
Other systems
- OpenTelemetry Demo: 23 services, 30 connections
- Train Ticket: 48 services, 140 connections
- Online Boutique: 12 services, 16 connections
- eShop: 19 services, 31 connections
- Robot Shop: 9 services, 12 connections
- Sock Shop: 8 services, 7 connections
- Bank of Anthos: 8 services, 9 connections
- Spring PetClinic Microservices: 7 services, 14 connections
Your own system
Run npx kuuhaku scan . in a folder of repos: it reads the code on your machine and only the graph leaves it. Or connect GitHub or Bitbucket and let the hosted runner scan with a read-only key. The map, a page per repo, a review inbox and a check on every pull request follow. Start free.