archview

Patterns

Modular MVC and hexagonal, recognized automatically.

The same classifier handles different architectures because it keys off conventional names, not a fixed folder layout. The flow shape ends up the same — that's the insight.

Modular MVC

internal/
  user/
    controller/   → controller
    service/      → service
    repository/   → repository
  product/
    ...

Each module becomes a swimlane; calls flow left to right through the three layers.

Hexagonal / ports & adapters

internal/
  catalog/
    domain/             (entities — no flow nodes)
    port/               (interfaces — invisible seams)
    usecase/            → service
    adapter/
      rest/             → controller   (inbound / driving adapter)
      postgres/         → repository   (outbound / driven adapter)
      gateway/          → repository   (outbound — notifier, etc.)

The ports are interfaces with no bodies, so they don't appear as nodes; the CHA call graph resolves each port to its concrete adapter. The result reads rest → usecase → postgres, and outbound fan-out is visible — a single use case can point at both a postgres repository and a gateway notifier.

Ports & buses

Turn on ShowPorts to surface the outbound interface as its own node, or DetectBuses to recover command/query/event routing through a mediator. Both are opt-in.

See both laid out in Examples.

On this page