Modelling

Connections

Create connections between objects, describe them, choose where they attach to each card, reconnect them and style them per view.

A connection (a relationship in C4 terms) says that one object uses, calls or depends on another. Like objects, connections live in the model: a connection you draw on one view appears on every view that shows both of its ends.

Draw a connection

Drag from one of the connection points on the edge of a card and drop the line on another card:

  • Drop it on the card's body, and it attaches to the side that faces the card it came from.
  • Drop it on a specific connection point, and it keeps exactly that point.
  • Drop it on empty canvas, and Add object opens: choose an existing object or create a new one, and the connection is made to it.

You can also right-click a card, select Connect from here and then click the target card. Press Esc while drawing to cancel the line without losing your selection.

A new connection points from the card you started at to the card you finished on, and its interaction style is Synchronous. Select it to describe it in the inspector.

Describe a connection

The inspector shows the connection's model properties:

  • Description is the label on the line, for example "Reads orders from".
  • Source and Target are its two ends. Changing them changes the architecture on every view.
  • Interaction style is Synchronous, Asynchronous, Event, Data, Dependency or Custom. Asynchronous, event and dependency connections are drawn dashed unless you choose another pattern.
  • Status is Live, Future, Deprecated or Removed.
  • Technology holds the protocol or technology, such as HTTPS, gRPC or Kafka. It appears on its own line under the label.
  • Tags and Properties (key and value pairs) classify the connection and keep extra data.

Labels

The view setting Show relationship labels turns all labels on or off; the label of a selected connection is always shown. To move a label, drag it, or focus it and use the arrow keys (hold Shift for bigger steps). Auto layout keeps your label placement.

Attachment points

Each side of a card offers connection points. When a side already has lines, it offers points at 25, 50 and 75 percent of its length, so several connections can leave one side without overlapping.

To move one end to another point on the same card, select the connection and drag that end. This changes only how the connection is drawn on this view.

Reconnect to another object

If you drag an end of a connection onto a different object, Archibara asks what you mean in Change connection:

  • New connection adds a separate connection to the model and hides the original on this view only. Existing flows continue to use the original connection.
  • Change connection in model moves this connection to the new object on every view that shows it. The dialog tells you how many views and flows that affects.

Either choice can be undone.

Style a connection on one view

Below the model properties, Relationship presentation holds settings that are saved only on the current view. Empty fields and Auto use the defaults.

  • Source side and Target side: Auto, Top, Right, Bottom or Left.
  • Color and Line width.
  • Line shape: Auto, Orthogonal, Curved or Straight.
  • Line pattern: Solid, Dashed or Dotted.
  • Source arrow and Target arrow: None, Open or Filled.
  • Legend label, which adds this line style to the view's Relationship legend under that name.
  • Label position (0–1), Label offset X and Label offset Y, for exact label placement.

Reset label placement and Reset presentation return to the defaults. The default line shape for the whole view is the view setting Connector style: Orthogonal (recommended), Curved or Straight.

Connections on higher-level views

Model each connection once, between the most specific objects, for example from one container to another. When a view shows a system but not its containers, Archibara draws those connections to and from the system instead, and merges several of them into one line with a count. These lines are derived from the model: to change or delete one, change the underlying connections.

Delete a connection

Select the connection and press Delete or Backspace, or right-click it and select Delete relationship. This deletes the connection from the model, so it disappears from every view. You can undo it like any other change.

View as Markdown