Template
49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# LikeC4 modeling conventions
|
|
|
|
These conventions keep a model readable and consistent as it grows.
|
|
|
|
## Relationship direction
|
|
|
|
Arrows point from the initiating element to the receiving element:
|
|
|
|
> initiator -> receiver
|
|
|
|
A normal response to a request is implicit. Model a reverse relationship only when it represents an independent architectural interaction.
|
|
|
|
Use the most specific useful endpoints. Prefer a parent element when implementation detail would make the view harder to read.
|
|
|
|
## Relationship labels
|
|
|
|
- Give every relationship a concise, active, present-tense label.
|
|
- Prefer precise verbs over the generic `uses`.
|
|
- Describe one architectural responsibility per relationship.
|
|
- Put protocols and communication technologies in the relationship's `technology` property rather than its title.
|
|
|
|
## Relationship kinds
|
|
|
|
Use the smallest applicable relationship kind from `src/specification.c4`:
|
|
|
|
| Kind | Meaning |
|
|
| --- | --- |
|
|
| `sends` | Transfers a request or message to another service. |
|
|
|
|
The relationship title describes the specific interaction; the kind provides consistent classification.
|
|
|
|
```likec4
|
|
intakeDesk .sends routingDesk 'forwards sorting requests'
|
|
```
|
|
|
|
Do not introduce a relationship kind for a single exceptional interaction. Add one only when it captures a recurring architectural distinction, and update this table in the same change.
|
|
|
|
## Static and dynamic views
|
|
|
|
Static views show enduring dependencies and interactions. Use dynamic views when sequence, timing, callbacks, or a multi-step scenario is the subject of the diagram.
|
|
|
|
## Visual styling
|
|
|
|
Relationship semantics come from direction, kind, and label, not color alone. Keep styling simple unless a visual distinction materially improves a view.
|
|
|
|
## Validation
|
|
|
|
Run `npm run validate` after every model change. LikeC4 validation checks model correctness, but these project-specific naming and labeling conventions still require review.
|