Skip to main content

TALA

Proprietary layout engine developed by Terrastruct, designed specifically for software architecture diagrams.

TALA is a separate install from D2, to keep a clean cut between 100% free and open-source D2, and proprietary, closed-source TALA. You can download it here: https://github.com/terrastruct/tala.

Reference

https://terrastruct.com/tala/

Pros

  • As a general orthogonal layout engine, TALA is not constrained to one type like hierarchies or trees or radial. For fundamentally non-hierarchical layouts, TALA can produce diagrams like a human would on a whiteboard.
  • top and left can be used to lock positions.
  • Considers and prefers symmetry.
  • First-class consideration for containers.
  • direction can be set per-container.
  • near can be specified to be to another shape.
  • sql_table connections point to exact row.
  • Dynamic label positioning to avoid obstructions.
  • Connections for grid cells use TALA's routing engine instead of always straight lines.

Cons

  • Not free.
  • Relatively new. ~2 years in production compared to the 10+ years that alternative layout engines have.
  • More random than other layout engines. A small change to a label can cascade into an entirely different layout.
JobRunner- start datetime- end datetime- running_server string- threads int- manager JobsManager+ pipeline Pipeline+ setPipeline(Pipeline p) void+ kickoff(threads int) boolJobRunner UIBatchkickoffhaltBatchManager- num int- timeout int- pid + getStatus() Enum+ getJobs() Job[]+ setTimeout(seconds int) voidSystemdSelenium Ensure aliveRun jobKick offQueue jobs
logsAT&T CustomerNetworkAPI ServerCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
Server side renderFinal buildUser defined templatesValidation testsRendering Engine APINextJSDataRendered HTMLIngestion moduleData fetching moduleSchema version module Integrate user dataGet version
paymentAWSData backupData warehouseOn-prem backupsOrchestratorApache AirflowQueue 1Queue 2Queue 1Queue 2Queue 3Queue 4
Offsite TenantAuditorsE335 Data RoomWeb based loggerData for prodQuickbooksIRSClientsbackupsAccountantSecurityJanitorWhitelisted ServerMicrosoft Windows FleetNetwork availabilityaccountantsRouting blockerAdd header tokensbuildApp instancesApp DBsAWS SecretsDocker containers Maintain connection
IBM "Espresso" CPUAMD "Latte" GPU2 GB DDR3 RAM "MEM2"RTCIBM PowerPC "Broadway" Core 0IBM PowerPC "Broadway" Core 1IBM PowerPC "Broadway" Core 216 KB ROMMemory & I/O BridgeDRAM Controller32 MB EDRAM "MEM1"512 B SEEPROMSATA IFEXI (Efficient XML Interchange)GXAMD Radeon R7xx "GX2"3 MB 1T-SRAM

Using a different seed

TALA's core algorithms use randomness in its initial placements and iterations. If you are not satisfied with a layout, you can produce different ones by specifying the seed with --tala-seed flag. For example, these are the same diagrams as the above, with --tala-seed=2.

Offsite TenantAuditorsE335 Data RoomWeb based loggerData for prodQuickbooksIRSClientsbackupsAccountantSecurityJanitorWhitelisted ServerMicrosoft Windows FleetNetwork availabilityaccountantsRouting blockerAdd header tokensbuildApp instancesApp DBsAWS SecretsDocker containers Maintain connection
IBM "Espresso" CPUAMD "Latte" GPU2 GB DDR3 RAM "MEM2"RTCIBM PowerPC "Broadway" Core 0IBM PowerPC "Broadway" Core 1IBM PowerPC "Broadway" Core 216 KB ROMMemory & I/O BridgeDRAM Controller32 MB EDRAM "MEM1"512 B SEEPROMSATA IFEXI (Efficient XML Interchange)GXAMD Radeon R7xx "GX2"3 MB 1T-SRAM