The layout engine that supercharges D2
What does it mean to be designed for software architecture diagrams?
- Orthogonal pathing is more appropriate for software architecture diagrams than squiggly lines.
- Shape placements minimize distance to each other in an unconstrained way.
- Containers (shape nested in another shape) is a first-class consideration at every stage of the layout, as it commonly appears in software architecture diagrams.
- Clusters (e.g. multiple shapes connected to one), trees, and hierarchies are automatically identified based on the structure of the diagram, and laid out specifically as subsections of the diagram. This means you can blend hierarchical and non-hierarchical structures in the same diagram, a frequent occurence.
- Icons are first-class, and are placed dynamically to not interfere with labels or other obstructions.
These are all in contrast to popular diagram layout engines used in other tools. In those, either the whole diagram is hierarchical or none of it is, which is rarely what a software architecture diagram looks like. Connection paths are unnaturally squiggly. Containers are an afterthought or shim -- as a result, the layouts become suboptimal when containers are part of the equation.
TALA also has a number of optimizations that are not specific to software architecture diagrams. For example, it looks at label positioning, and will try to place labels somewhere where it doesn't clash into another label or another shape border or line.
You can see some samples here. To compare the results of TALA versus other layout algorithms, visit https://text-to-diagram.com.
TALA is constantly improving -- getting faster, producing better layouts, and supporting more types of layouts. Expect frequent updates/releases. If you find any bugs or have feature requests, please file them as issues on Github.
TALA powers all diagrams on Terrastruct. If you're just using the web app, you're already using TALA. The rest of this section applies to its usage in diagramming with D2 outside the web app (e.g. offline, locally).
You can install TALA by following instructions on Github. It's free to try and evaluate, but you'll need a license key that comes with your Terrastruct subscription to run it without restrictions.
Terrastruct monetizes by charging income-generating, for-profit businesses. If that is not you, e.g. student, researcher, non-profit, open-source maintainer, etc, please email us for a free license at firstname.lastname@example.org using an email that confirms affiliation.
There are two types of licenses, Personal and Enterprise. There are two differences:
- IP assignment. Diagrams made on a Personal license belong to the creator. Diagrams made on an Enterprise license is automatically assigned IP to the purchasing entity.
- Enterprise licenses can be revoked by the company. This is used for when an employee departs and should no longer have access to company-internal diagrams and assets.
To be clear, these licenses only apply to usage of Terrastruct and TALA. D2 itself is FOSS (free and open-source software), governed by a different, open license (Mozilla Public License 2.0).
Your's forever after 12 months
When your Terrastruct subscription ends, you will no longer have access to updates or the web app. But D2 will always live on in open-source as a growing go-to language for software teams to make diagrams, and if your subscription has totalled 12 months, your latest copy of TALA when your subscription ended is your's to use forever. Standalone personal licenses qualify for this.