How to set up flows¶
In Titan flows are set up and configured using a YAML configuration file. The flow configuration file consists of two sections, the lists Bricks: and Flows:. Here’s an example of a configuration file:
Bricks:
- Name: Generator
Module: bricks/generator/generator.py
- Name: Increase
Module: bricks/incrementer/incrementer.py
- Name: Display
Module: bricks/display.py
Flows:
-
Name: Example Flow
Bricks:
-
Brick: Generator
Parameters:
Values: 2
Wait Between Values: 0.01
-
Name: Add42
Brick: Increase
Parameters:
Addend: 42
-
Brick: Increase
autoscale: True
autoscale_queue_level: 2
autoscale_max_instances: 3
-
Brick: Display
Connections:
-
Source: Generator
Target: Add42
Ports:
Source: A
-
Source: Add42
Target: Increase
-
Source: Increase
Target: Display
Bricks¶
Bricks: is the list of brick types available for usage in the flows.
Name: brick_name
: The name that identifies the brick (type) in the flowModule: e.g. brick/module/directory/file.py
: The path to the brick module. This can be a path relative to the flow configuration file, an absolute path, or a python package name (e.g. mypackage) provided that it is resolvable via sys.path.
Flows¶
Flows: is the list of flows to be executed. A flow is described by:
Name: flow_name
: The name of the flowBricks:[brick_list]
: The list of individual bricks that constitute the flow, each specified by:Name: brick_name
: The (optional) unique name that identifies the brick in the flowBrick: brick_type_name
: The name of the brick as listed in the list of available bricks (Bricks:)Parameters: {parameter_map}
: A dictionary with parameters can be given if the brick (type) supports parameters. By default, parameter values given in the config.yml file of the brick are used.autoscale
: An (optional) boolean, that determines whether a brick can be scaled or notautoscale_queue_level
: An (optional) integer value, that defines at which output queue size of the preceding brick autoscaling is triggered.autoscale_max_instances
: An (optional) integer value, that sets the maximum number of instances that can be created.
Connections: [list]
: The list of connections between the bricks, specified by giving:Source: source_brick_name
: The name of the source brick (Name: if set in the flow’s Bricks: list, otherwise brick type name Brick:)Target: target_brick_name
: The name of the target brick (Name: if set in the flow’s Bricks: list, otherwise brick type name Brick:)Ports: {port_map}
: Optional dictionary of ports used to connect source and target brick. Ports are identified by characters.Source: char
: Output port of the source brick (defaults to ‘A’)