Public maps · Bank of Anthos

Bank of Anthos, mapped from the code.

Google's sample bank: a Python Flask front end and account services, Java ledger services and two Postgres databases. Kuuhaku read its source at commit db35fea, with no configuration and no hand-fixing, and found 8 services in Python and Java, and 9 connections: 6 over HTTP and 3 through shared databases. Each one below says how it was found.

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

Services

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

ServiceStackRoleCallsCalled by
frontendPython · Flaskservice50
balancereaderJava · Spring Bootservice04
ledgerwriterJava · Spring Bootservice21
contactsPython · Flaskservice02
transactionhistoryJava · Spring Bootservice11
userservicePython · Flaskservice11
ledgermonolithJava · Spring Bootservice00
loadgeneratorPythonconsumer00

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
frontendbalancereaderHTTPconfig1URL worked out at frontend.py:118
frontendcontactsHTTPconfig2URL worked out at frontend.py:130
frontendledgerwriterHTTPconfig1URL worked out at frontend.py:334
frontendtransactionhistoryHTTPconfig1URL worked out at frontend.py:124
frontenduserserviceHTTPconfig2URL worked out at frontend.py:445
ledgerwriterbalancereaderHTTPconfig1URL worked out at src/main/java/anthos/samples/bankofanthos/ledgerwriter/LedgerWriterController.java:215
ledgerwriterbalancereadershared databaseconfig—SPRING_DATASOURCE_URL in ledgerwriter and SPRING_DATASOURCE_URL in balancereader name the same Postgres ledger-db/postgresdb
transactionhistorybalancereadershared databaseconfig—SPRING_DATASOURCE_URL in transactionhistory and SPRING_DATASOURCE_URL in balancereader name the same Postgres ledger-db/postgresdb
userservicecontactsshared databaseconfig—ACCOUNTS_DB_URI in userservice and ACCOUNTS_DB_URI in contacts name the same Postgres accounts-db/accounts-db

Left for a person

3 items 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.