Learn how to create cross-level connections using virtual node references without duplication
Virtual nodes are references to nodes from different diagram levels. They enable complex multi-level architectures without duplicating nodes, letting you create cross-level connections while maintaining a single source of truth.
What virtual nodes are and how they work
When to use virtual nodes vs. regular nodes
Creating and navigating virtual references
Best practices for cross-level architectures
Virtual nodes are like symlinks in filesystems or shortcuts in operating systems. They point to the original node without duplicating it, making updates automatic across all references.
Virtual nodes are "pointers" or "references" to nodes that exist elsewhere in your diagram hierarchy. Instead of copying a node, you create a lightweight reference to it.
Virtual nodes are like:
Symlinks in filesystems • Shortcuts in operating systems • References in programming
Single source of truth for shared components
Change the original, all references update automatically
Show cross-level dependencies explicitly
Jump from reference to original with one click
Virtual nodes excel in specific scenarios. Here's when to use them:
Multiple microservices connecting to the same database
All services routing through a common gateway
Services publishing/subscribing to shared queues
Multiple services depending on common utilities
All apps connecting to single auth service
When NOT to Use Virtual Nodes:
Simple single-level diagrams • When components are truly separate instances • Purely conceptual relationships • When duplication provides better clarity
Adding a virtual node creates a reference to an existing node from another level. Here's the step-by-step process:
Go to the diagram level where you want the reference
Find the button in the side navigation
A selector appears showing available nodes from other levels
Pick the node you want to reference
The virtual node appears with a special indicator
Virtual Node Indicators:
Dashed border or outline • Special icon or badge • Different opacity or styling • Tooltip showing original location
Virtual nodes cannot be edited directly. Changes must be made to the original node, and they'll automatically update all references.
Virtual nodes and their originals are tightly connected. Here's how to navigate between them:
Alt/Option + Click on virtual node
Select virtual node, use "Go to Original" in controls
Right-click menu → "Navigate to Source"
// Finding All References to an Original Node
// 1. Select the original node
// 2. Look for a "References" indicator
// 3. Click to see all virtual references
// 4. Navigate to any reference location
// Example:
// Shared Database (original) → "3 references"
// → Service A/DB Connection
// → Service B/Data Layer
// → API Gateway/Cache LayerBreadcrumbs help track your location • Virtual nodes show their source path in tooltips • Use command palette for quick navigation
Virtual nodes behave like regular nodes for connections. You can draw edges to and from them normally:
Connect from/to virtual nodes just like regular nodes
Describe relationships clearly with edge labels
Edges appear only at the current diagram level
// Common Connection Patterns:
// Service to Shared Database
[Service A] --"queries"--> [Virtual: Main DB]
// All Services to Gateway
[Service B] --"routes through"--> [Virtual: API Gateway]
// Multiple Apps to Auth
[Frontend] --"authenticates via"--> [Virtual: Auth Service]
// Message Queue Pattern
[Order Service] --"publishes to"--> [Virtual: Event Bus]
[Inventory Service] --"subscribes to"--> [Virtual: Event Bus]Always label edges to virtual nodes • Document why the cross-level connection exists • Use consistent connection patterns across services
Use virtual nodes for frequently referenced components
Keep node hierarchies reasonable (3-5 levels max)
Document connection purpose with edge labels
Check reference indicators to find all usages
Navigate to original when needing to update
Use virtual nodes for shared infrastructure components
Virtual nodes cannot be edited directly
Changes must be made to the original node
Virtual connections shown only at current level
Don't create virtual references to virtual nodes
Linking shared databases across microservices
Showing navigation flows between UI pages
Documenting shared libraries in services
Mapping API gateway connections
Connecting services to shared message queues
Showing authentication flows across applications
Press V to add virtual node
Alt/Option + Click on virtual reference
Cmd/Ctrl + K to open command palette and add virtual node
Side navigation (left sidebar) - Creates a reference to a node from another level
On virtual nodes - Visual indicator showing this is a reference
Control panel (when virtual node selected) - Navigates to the source node
On original nodes - Shows count of virtual references
You've mastered virtual nodes - the most advanced ArkT feature!
✅ Understand virtual node concepts
✅ Create virtual references across levels
✅ Navigate between originals and references
✅ Build complex multi-level architectures
Ready to complete your mastery? One more tutorial to go:
Use virtual nodes strategically - They're powerful but can make diagrams complex if overused
Keep hierarchies shallow - 3-5 levels is ideal for most architectures
Document your patterns - Establish team conventions for when to use virtual nodes
Combine with templates - Create templates with common virtual node patterns