Skip to content
🤷

Forgive us! These docs are a work in progress. Some pages may be incomplete or describe features that aren't quite finished yet. Farkitect is in early development and we don't recommend using it for real work just yet. Feel free to explore — just be aware that things are still being built.

Diagrams vs Models

One of the most important concepts in Farkitect is the distinction between a model and a diagram. Getting this right changes how you think about organizing your work and prevents a class of mistakes that plague users of simpler drawing tools.

Your model is the collection of all elements, relationships, and property values in your project. It lives in packages in the Explorer. Every element you create — whether from the Palette, the Explorer context menu, or by importing a .farki file — becomes part of the model.

The model is structured data. It has types, properties, constraints, and relationships. It’s queryable, exportable, and shareable. It exists independently of any visual representation.

A diagram is a visual arrangement of some elements from the model. It shows a subset of the model on a Canvas with positions, sizes, edge routes, and formatting. But the diagram doesn’t contain the elements — it references them.

This means:

  • One element can appear on many diagrams. An Application Component called “FQ Vessels” might appear on an Application Cooperation diagram, an Infrastructure diagram, and a Deployment diagram. It’s the same model element shown in three different visual contexts.

  • Removing an element from a diagram doesn’t delete it. Pressing Delete on a Canvas node removes it from that diagram. The element still exists in the model (in the Explorer) and still appears on any other diagrams where it’s placed.

  • Deleting an element from the model removes it everywhere. Using Ctrl+Delete / Cmd+Delete (or deleting from the Explorer) removes the element from the model entirely — and from every diagram where it appeared.

You can create multiple diagrams that show different perspectives on the same model. A high-level overview diagram might show Farquind’s major applications as large boxes. A detail diagram might zoom into one of those applications and show its internal components. Both diagrams reference the same underlying model elements.

This means your model has one source of truth. When you change an element’s name or properties, the change appears everywhere — on every diagram, in every catalog, and in every export.

In a simple drawing tool, if you want the same box on two diagrams, you draw it twice. Now you have two copies with no connection between them. Change one, and the other is stale. In Farkitect, you place the same element on both diagrams. There’s only one element in the model, shown in two places.

Catalogs and exports work with the model, not with diagrams. A catalog shows elements from a package — regardless of which diagrams they appear on. An export captures the full model structure. Elements that exist in the model but don’t appear on any diagram are still exported and cataloged.

When a team member adds an element to the model, everyone can see it in the Explorer and add it to their own diagrams. Changes to property values are visible in real time across all views — diagrams, catalogs, and the Properties panel.

Think of the model as a database and diagrams as dashboard views. The database holds the data; the dashboards present different slices of it. You can add, remove, or rearrange widgets on a dashboard without changing the underlying data. But when the data changes, every dashboard that references it reflects the change.

ActionWhat happens to the modelWhat happens to diagrams
Drag element from Palette to CanvasElement created in model + placed on this diagramNode appears on this diagram
Drag element from Explorer to CanvasNo model change (element already exists)Node appears on this diagram
Press Delete on a Canvas nodeNo model changeNode removed from this diagram only
Press Ctrl+Delete on a Canvas nodeElement deleted from modelNode removed from all diagrams
Delete element from ExplorerElement deleted from modelNode removed from all diagrams
Rename element in Properties panelElement renamed in modelName updates on all diagrams
Change a property valueValue updated in modelVisible on all diagrams showing that property
Move a node on the CanvasNo model changePosition changes on this diagram only

The left column (model changes) is global. The right column (diagram changes) is local to the specific diagram.

When you’re working in Farkitect, always think about whether you’re changing the model or changing the diagram. Model changes ripple everywhere. Diagram changes affect only what you see in front of you.

This separation is what makes Farkitect a modeling tool rather than a drawing tool — and it’s what makes your models useful as structured, queryable, exportable data rather than just pictures.