Public maps · Sock Shop

Sock Shop, mapped from the code.

Weaveworks' Sock Shop: a Node front end with Java and Go services and RabbitMQ, one repository per service. Kuuhaku read its source, with no configuration and no hand-fixing, and found 8 services in Java, Go and JavaScript, and 7 connections: 6 over HTTP and 1 through a queue. Each one below says how it was found.

Open the live mapMap your own repos
Kuuhaku's map of Sock Shop: 8 services grouped into consumers and services, with 7 connections drawn between them

Services

Every repo or deployable the scanner found, with how many connections leave it and reach it.

ServiceStackRoleCallsCalled by
front_endJavaScript · Expressservice40
ordersJava · Spring Bootservice21
shippingJava · Spring Bootservice11
cartsJava · Spring Bootservice01
catalogueGoservice01
paymentGoservice01
queue_masterJava · Spring Bootworker01
userGoservice01

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.

FromToTypeEvidenceCall sitesHow it was found
front_endcartsHTTPconfig7literal in code: carts is the application or compose service name of carts
front_endcatalogueHTTPconfig8literal in code: catalogue is the application or compose service name of catalogue
front_endordersHTTPconfig4literal in code: orders is the application or compose service name of orders
front_enduserHTTPconfig16literal in code: user is the application or compose service name of user
orderspaymentHTTPinferred1"payment" in src/main/java/works/weave/socks/orders/config/OrdersConfigurationProperties.java:12
ordersshippingHTTPinferred1"shipping" in src/main/java/works/weave/socks/orders/config/OrdersConfigurationProperties.java:16
shippingqueue_masterqueueinferred11 queue published by shipping, consumed by queue_master

Left for a person

1 item the scanner would not settle on its own and put in the review inbox instead of guessing:

Other systems

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.