Skip to content
Connect an agent
Language reference

Flow node types

Every type a flow node can take, with its shape, default tone and icon, the technology marks a node can carry, and the mark of a planned change.

TL;DR

QuestionAnswer
How is a node written?node <id> <type> "Label", with optional sub=, tone=, icon=, stack=, and change= options.
How many types are there?16: person, agent, client, service, gateway, function, database, cache, queue, storage, identity, secret, external, step, decision, terminal.
Which types can be a sequence actor?person, agent, client, service, gateway, function, database, cache, queue, storage, identity, secret, external, step.
How do I show a technology?stack= carries up to 3 marks, such as stack=simple:angular,simple:typescript.
How do I show what a change does?change= takes create, update, replace, destroy: a badge on the card and an outline in the change's tone.

Node types

A flow node is written node <id> <type> "Label", with optional sub=, tone=, icon=, stack=, and change= options. A type sets the default tone, icon, and look. A step has no icon, so it has no chip for its tone to colour, and a tone written on it tints the card the way a decision is tinted. A sequence actor may use any type marked yes in the last column.

TypeShapeDefault toneDefault iconOutlineFillActor
personcardneutrallucide:usersolidplainyes
agentcardvioletlucide:botsolidplainyes
clientcardneutrallucide:monitor-smartphonesolidplainyes
servicecardbluelucide:serversolidplainyes
gatewaycardbluelucide:networksolidplainyes
functioncardbluelucide:zapsolidplainyes
databasecardaqualucide:databasesolidplainyes
cachecardorangelucide:database-zapsolidplainyes
queuecardorangelucide:layerssolidplainyes
storagecardaqualucide:hard-drivesolidplainyes
identitycardvioletlucide:id-cardsolidplainyes
secretcardredlucide:lock-keyholesolidplainyes
externalcardneutrallucide:clouddashedplainyes
stepcardneutralnonesolidplainyes
decisioncardamberlucide:splitsolidtintedno
terminalpillneutralnonesolidplainno

Technology marks

stack= puts small technology marks on a card, under its text: node app storage "Web app" stack=simple:angular,simple:typescript. Each mark is an icon reference, usually from the simple set, checked like icon=. A card carries the number of marks in the limits table, each listed once and drawn in the order written. A mark is never drawn over the text or the icon, because the card grows to hold the row, and the text description lists the marks. A terminal pill has no room for marks and reports an error.

Planned changes

A review of infrastructure needs to see at a glance what a change makes, alters, and removes. change= marks a node with a round badge on its top edge and outlines the card in the change's tone: node db database "orders-db" icon=aws:rds change=update. The mark works on every card, an icon from a vendor set too, and on a pill. The badge sits in the card's top padding, so it never covers the text or the icon, and the text description names the change. The terraform-plan import sets it on every resource the plan changes.

ValueSignToneMeans the thing is
create+greenmade by the change
update~amberchanged in place
replace±orangedestroyed and made again
destroy−reddestroyed by the change

See also

DocWhy
Language referenceEvery page of the reference and what each covers
Groups and overlaysFrames around nodes
Icon setsWhere an icon= value comes from
Icon referenceEvery bundled icon and how to find one