Fleets

Definition

A Fleet is a collection of multiple Vessels working together to tackle one larger job and it's the equivalent of a Workflow or DAG.

Fleets can contain any number of Vessels and contain any different type of Vessels (including a mixture of coding languages or Blueprints). Vessels can be reused across multiple Fleets and can continue to run independently of the Fleets they belong to. All Vessels are connected together with paths.

How Fleets Run

Vessels in a Fleet get run in the order that you choose, starting with one or multiple Vessels that don't have any paths feeding into them. A Fleet can be kicked off with a Schedule Trigger or an On Demand Trigger.

The paths between Vessels can be sequential (one-to-one), branching (one-to-many) or converging (many-to-one).

When an upstream Vessel finishes running with the status of Success, it kicks off all downstream Vessels that are connected to it by a path. If a Vessel is part of a converging path, it waits until all upstream Vessels have finished successfully before running.

File Sharing

When a Fleet runs, files generated by upstream Vessels get shared with every downstream Vessel as part of a shared local file system. In this way, Vessels can be built to run independent, modular tasks off of newly generated data, allowing greater flexibility in how you build Vessels. This design is the equivalent of running individual scripts one after another on your local computer. Once every Vessel in the Fleet has finished running, all files are immediately wiped from our system.

Screenshots

Editing Vessels in a Fleet

Limitations

While fleets are a powerful way to automate an entire workflow, there are a few limitations to be aware of.

  1. A Fleet cannot be set up with Vessels that live across multiple projects. You'll need to make sure that all of the relevant Vessels live within the same project.

  2. Vessels that are connected as part of a Fleet can only be triggered through the successful completion of the previous Vessel. There is no current support for conditional logic based on other error codes, and there is no way to skip to the next Vessel in the fleet if the previous Vessel failed.

  3. A Fleet cannot contain any paths that would create a loop.

  4. A Fleet must contain two or more Vessels that are all connected together by a path. If you want to have a set of Vessels that aren't connected to the larger group, you will need to create another Fleet and trigger it at the same time.

  5. You are currently unable to kick off a Fleet starting anywhere in the middle, although you can kick off individual Vessels at will. This prevention is in place because we delete data as soon as a Fleet has finished running. If you ran a Vessel starting from the middle and it relied on data created upstream, it would be unable to find that data and immediately fail.

  6. A Fleet can only be created with Vessels that already exist. We currently don't support creating a Vessel while creating a Fleet.

  7. A Fleet cannot have two or more copies of the same Vessel. Once you select a Vessel, it becomes unavailable in the dropdown.

Learn More