IDL Part 1: Resources and Perspectives
Ilograph diagrams look like this:
Unlike traditional diagrams, Ilograph diagrams are interactive. Users can click on resources to “focus” them, for instance. Doing this shows more details about that resource and hides resources that are not related to it:
Resources can also appear in multiple perspectives which the user can switch between:
Because Ilograph diagrams are interactive, Ilograph authors cannot simply place entities on a canvas. Instead, as an author, you declare your resources and the relationships between them. You do this using the simple but very powerful Ilograph diagramming language (IDL).
We’ll start with a very basic IDL example for a fictitious company, Tech Corporation:
resources:
- name: MiniChat
subtitle: Application
- name: Quick Send
subtitle: Application
- name: WhosWho
subtitle: Microservice
- name: LongStore
subtitle: Microservice
perspectives:
- name: Service
relations:
- from: MiniChat
to: WhosWho
- from: Quick Send
to: WhosWho
- from: Quick Send
to: LongStore
When rendered in the Ilograph app, it looks like this:
This Ilograph has four resources (“MiniChat”, “Quick Send”, “WhosWho” and “LongStore”) and a single perspective (“Service”). In that perspective, there are three relations, represented as arrows. Though there isn’t much detail yet, this perspective appears to show us which services are used by which applications.
We can make these relations explicit by adding labels to those arrows:
...
perspectives:
- name: Service
defaultRelationLabel: Depends On
relations:
...
All of the arrows in this perspective are now labeled:
As the name defaultRelationLabel implies, this label is used only for relations that don’t have an explicit label. Use the label property set the arrow label on individual relations:
...
- from: Quick Send
to: WhosWho
label: Uses
...
To add even more context for this perspective, use the notes property:
...
perspectives:
- name: Service
defaultRelationLabel: Depends On
notes: Notes appear to the right side of the perspective. They can be
toggled on and off using the "Toggle Notes" button above.
...
The color property lets us set the text color for resources. Giving different types of resources different colors improves the readability of your diagram:
resources:
- name: MiniChat
subtitle: Application
color: Navy
- name: Quick Send
subtitle: Application
color: Navy
- name: WhosWho
subtitle: Microservice
color: OrangeRed
- name: LongStore
subtitle: Microservice
color: OrangeRed
...
Colors can be specified using X11 color names or hex (e.g. “#FF00FF”).
Descriptions can be added to each resource. These appear when a resource is focused and are used to give more details about the resource:
...
- name: Quick Send
subtitle: Application
color: Navy
description: Enables quick, simple and secure file sharing
...
Lastly, we’ll augment this perspective with three new resources:
resources:
...
- name: AWS
subtitle: Cloud service provider
children:
- name: Cognito
subtitle: Cloud Service
color: green
- name: S3
subtitle: Cloud Service
color: green
...
perspectives:
- name: Service
...
relations:
...
- from: WhosWho
to: Cognito
- from: LongStore
to: S3
Here, the “Cognito” and “S3” resources are children to the “AWS” resource. By default, this additional context will be visible in perspectives:
We’ll take a closer look and parent and children resources in a follow-up post. For now, you can check out this example in the Ilograph app. For more detailed, real-world examples, see the Drupal on AWS and Git Webhooks on AWS examples.