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
| Question | Answer |
|---|---|
| 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.
| Type | Shape | Default tone | Default icon | Outline | Fill | Actor |
|---|---|---|---|---|---|---|
person | card | neutral | lucide:user | solid | plain | yes |
agent | card | violet | lucide:bot | solid | plain | yes |
client | card | neutral | lucide:monitor-smartphone | solid | plain | yes |
service | card | blue | lucide:server | solid | plain | yes |
gateway | card | blue | lucide:network | solid | plain | yes |
function | card | blue | lucide:zap | solid | plain | yes |
database | card | aqua | lucide:database | solid | plain | yes |
cache | card | orange | lucide:database-zap | solid | plain | yes |
queue | card | orange | lucide:layers | solid | plain | yes |
storage | card | aqua | lucide:hard-drive | solid | plain | yes |
identity | card | violet | lucide:id-card | solid | plain | yes |
secret | card | red | lucide:lock-keyhole | solid | plain | yes |
external | card | neutral | lucide:cloud | dashed | plain | yes |
step | card | neutral | none | solid | plain | yes |
decision | card | amber | lucide:split | solid | tinted | no |
terminal | pill | neutral | none | solid | plain | no |
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.
| Value | Sign | Tone | Means the thing is |
|---|---|---|---|
create | + | green | made by the change |
update | ~ | amber | changed in place |
replace | ± | orange | destroyed and made again |
destroy | − | red | destroyed by the change |
See also
| Doc | Why |
|---|---|
| Language reference | Every page of the reference and what each covers |
| Groups and overlays | Frames around nodes |
| Icon sets | Where an icon= value comes from |
| Icon reference | Every bundled icon and how to find one |