Reference
Graph Designer
How to build, connect, read, and troubleshoot the executable service graph.
Graph basics
Canvas and responsive layoutThe designer keeps stream properties and graph topology together. On wide screens both panels are visible; on narrow screens they become separate Settings and Graph tabs.
Settings | GraphOverviewThe graph is the executable architecture edited by Service Architect. Each node is a stream transformation owned by a service; each directed edge carries a message from a source stream to a consumer stream.Streams, typed links, and service boundariesCanvas controls
Adding a streamA stream can be created independently from the Stream page or created as part of a new downstream connection in Build Mode.
Stream page or Build ModeBuild ModeBuild Mode replaces node repositioning with a fast topology-building gesture. A drag can connect two existing streams or create and connect a new stream.Drag to connect or createGraph toolbarFour floating buttons control the graph viewport, layout, editing mode, and renderer.Fit · Auto layout · Build Mode · RendererConnections
Connecting streamsA persisted link connects the output of one stream to the source slot of another. The designer checks the candidate before creating the connection.
Source -> consumerError connectionsAn Error stream is the dedicated consumer of failures emitted by transformations whose definition has `hasError` enabled.Dashed failure pathLink call semanticsEvery regular persisted link defines how its consumer is dispatched at runtime. The effective mode is printed below the message type on the edge.Inherited · Call · Parallel · PoolsSplit and Replace decisionsWhen a new connection conflicts with an existing consumer, the designer can modify the topology rather than silently overwriting it.Resolve an occupied connectionModeling behavior
Cross-service endpoint relationshipsNormal stream links stay inside one service. Communication between services is modeled by an outbound Sink and inbound Input associated through connector endpoints and compatible message types.
Persisted links vs transport associationsCycles and CycleLinkNormal graph editing rejects cycles. CycleLink is the explicit transformation used when feedback is intentional rather than an accidental dependency loop.Explicit feedback boundaryMessage types and automatic adaptersEdge types are derived from stream contracts. When a multi-input operator needs a compatible input shape, the designer can insert an explicit adapter stream instead of hiding a conversion inside the link.Type propagation · KeyBy · MapPipelinesThe `pipeline` property groups related streams under a user-defined name. It provides architectural context without replacing the actual directed links.Named execution and documentation groupEditing workflow
Designer vs generator validationThe canvas prevents common invalid edits immediately, while full project validation checks contracts that require the complete graph and selected target backends.
Fast feedback and final validationEditing stream propertiesThe Stream properties panel changes shape for the selected transformation. Fields are grouped by purpose and can be locked when changing them would invalidate existing topology.General · Connections · Data · Function · ExecutionUndo, redo, and savingDesigner edits are recorded as graph-model snapshots. The application distinguishes unsaved changes from the last saved project state.Toolbar history and dirty stateVisual language
Edges and labelsLine color, style, arrows, and labels distinguish persisted data flow from error routing, endpoint associations, and selection.
Blue · dashed · orange · greenRed nodes and invalid graph stateA stream node is colored light red (`#EF8989`) when its transformation-level `validateLogic()` check fails.Red background = failed local stream logicStream iconsThe icon in a node identifies its transformation family. Endpoint-backed Input and Sink nodes can replace the base icon with a transport-specific symbol.Transformation icon legend