Architecture decision records (ADRs)

The !adrs keyword can be used to attach Markdown/AsciiDoc ADRs to the parent context (either the workspace, a software system, or a container).

!adrs <path> [type|fqn]

The path must be a relative path, located within the same directory as the parent file, or a subdirectory of it. For example:

!adrs subdirectory

By default, the com.structurizr.importer.documentation.AdrToolsDecisionImporter class will be used to import ADRs as follows:

  • All Markdown files in this directory will be imported, alphabetically according to the filename.
  • The files must have been created by adr-tools, or at least follow the same format.
  • All images in the given directory (and sub-directories) are also imported into the workspace.

The second parameter ([type|fqn) can be used to specify a type or fully qualified class name of your own implementation of DocumentationImporter, which needs to be on the DSL classpath or installed as a JAR file in the plugins directory next to your DSL file. The supported built-in types are:

  • adrtools (com.structurizr.importer.documentation.AdrToolsDecisionImporter)
  • madr (com.structurizr.importer.documentation.MadrDecisionImporter)
  • log4brains (com.structurizr.importer.documentation.Log4brainsDecisionImporter)

See Structurizr UI - Decisions for details of how ADRs are rendered with the Structurizr UI.