Information for: DEVELOPERS   PARTNERS

Graph

The graph is the basic building block for customer journey execution within Acquia Journey.

Each graph represents a series of logical steps that are executed from the Start Node to an end node. A node is either a piece of business logic or an adaptor—the graph executes and each node updates schema and public variable locations to make decisions and to orchestrate events. The graph proceeds from node to node based on the outcome of the node and the Links available to: Error, Conditional or Goto.

A single graph can be executed many times in parallel by Acquia Journey. Acquia Journey will only deploy or visual test graphs that are valid.

Graph validation

A graph is considered valid if it passes all of the following conditions:

  • It must have a Start Node (default behavior)
  • At least one Return Node
  • Each non-return node must have exactly one Goto link and at most one error link
  • Each adaptor is valid - all of the necessary connection details and parameters have been specified within the adaptor
  • All nodes that require them have their input and output schema locations mapped
  • Any sub-graphs must also be valid and not have any listeners
  • No ghost node in the main graph - it is okay to have ghost nodes, and other disconnected nodes, which are not linked from the Start Node
  • Cannot for a cycle - all graphs are directed acyclic graphs
  • Any Split Test Node producer or consumer must have a counterpart consumer or producer in the same project

A graph can optionally have a Listener or Parameters - it can only have one of these things. The options to add a Listener or Parameters to a graph are shown in the top right hand corner of the window.

Listener Graph

A Listener is a special type of graph that receives input from an external source and places it into the schema for processing by the graph. The graph will be executed separately for each listener event. A listener graph is the only type of graph that can be deployed. The supported Listener types are currently:

A Listener Graph can not be used as a sub-graph.

Adding a Listener

To add a Listener to a graph click on the Add Listener button and then follow the specific instructions for the desired Listener type. The Listener icon will then be shown in the top left of the graph.

Modifying a Listener

To edit the listener settings either double click on the listener icon in the top left hand corner of the graph or click on the Edit Listener button at the top right of the graph.

Removing a Listener

To remove a listener from a graph click on the Remove Listener button at the top right of the graph.

Graph parameters

A graph can optionally have parameters. This allows the same piece of business logic to be re-used with different input values or schema locations as input. Each parameter will be associated with a schema location. When the graph is executed the schema location will be populated with the parameters that have been chosen in the calling graph. The schema locations are passed by value so any modifications made to the schema values will not be changed in the calling graph.

Adding parameters

To add parameters to a graph click on the Add Parameters button in the top right hand corner of the graph window. This button will bring up the Parameter editing window that allows parameters to be added and removed. When adding a new parameter it is necessary to specify the schema location for the parameter when it is passed to the sub graph.

For example, the parameters paramA and paramB can be defined for a graph, and the schema locations can be defined as request/input1 and request/input2 respectively.

Modifying parameters

If a graph has parameters then the Edit Parameters icon will appear in the top left of the graph window. Clicking on this icon will bring up the Parameters window where parameter schema locations can be edited. The window is closed by the Close button at the bottom of the Parameters editor pop-up.

Removing parameters

Parameters are removed from a graph by clicking on the trash can icon next to the parameter name in the Parameters window.