<a id="cyclic"></a>

# Cyclic Workflow

The cyclic workflow was added in NVIDIA FLARE 2.0 and implemented with the Controller API. It allows for a different control
flow implemented through the [`control_flow()`](../../apidocs/nvflare.app_common.workflows.cyclic_ctl.md#nvflare.app_common.workflows.cyclic_ctl.CyclicController.control_flow) method based on `relay_and_wait()` instead of
`broadcast_and_wait()` in the [Scatter and Gather Workflow](scatter_and_gather_workflow.md#scatter-and-gather-workflow).

[`nvflare.app_common.workflows.cyclic_ctl.CyclicController`](../../apidocs/nvflare.app_common.workflows.cyclic_ctl.md#nvflare.app_common.workflows.cyclic_ctl.CyclicController)

## Example with Cyclic Workflow

See the [Hello Cyclic Example](https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-cyclic) for an example application with
the cyclic workflow.
