Flo for Spring XD

Flo is an HTML5 canvas application that runs on the Spring XD runtime, offering a graphical interface for creating and monitoring streaming and batch data pipelines.

Drag and Drop Interface

Flo allows you to create real-time streaming and batch pipelines either with the textual shell or the ‘drag and drop’ interface. For more information, see the Building Streams and Advanced Stream Creation.

Flo and Streaming Pipelines

The textual shell offers content-assist for stream definitions. Whether it is a source, processor, sink, or job, content-assist offers completion of module names and module options. This allows for rapid development, and is similar to the content-assist experience when writing code in an IDE. For more information, see the Content Assist and Validation tutorial video.

The textual and graphical views are kept in sync automatically. While working on a stream definition you can switch them and still find an up-to-date representation of your pipelines.

Flo includes a palette with all out-of-the-box adapters available in Spring XD. The palette also includes a smart search filter for quick module lookup. Once you find your desired module, you can drag and drop the module to the canvas to create a new definition or augment an existing one.

Pipelines are composed of source, processor (0..n), and sink modules. Flo expects this structure and offers immediate feedback on any issues it finds. The textual shell displays error messages for syntax errors and other problems with stream definitions, such as if a module is specified with an unsupported option.

Health Monitoring

Spring XD uses Spring Boot’s monitoring and management support over HTTP and JMX along with Spring Integration’s MBean Exporters. Flo leverages these endpoints to provide visual health monitoring.

The states of pipelines in Spring XD are represented visually by different colors. Green, orange, grey, and red indicate Deployed, Incomplete, Undeployed, and Failed, respectively.

Small colored circles under each module represent the states of that module’s instances. White indicates that an instance is waiting to be deployed, and green indicates successful deployment. Hovering over a circle provides information specific to the corresponding instance, such as where it is running. If you request a large number of instances in this way, the view switches from circles to a simple numeric summary of how many are successfully deployed versus how many have been requested.


Flo overlays the stream view of each module with the combined message throughput for all instances of that module. Where applicable, the input rate is displayed to the left of the module and the output rate is displayed on the right.

For more information, see the Health Metrics tutorial video.

Flo and Batch Pipelines

Flo also offers a textual shell and graphical view for batch pipelines. As with the textual shell and graphical view for streaming pipelines, they are kept in sync automatically. Flo for Batch pipelines in Spring XD is available under Jobs > Create Composed Job.

Unlike the palette for streaming pipelines, the palette for batch pipelines does not include out-of-the-box job modules. Job definitions for batch pipelines must first be created, and are then available in the palette, along with any already-defined composed jobs.

Flo for Batch pipeline builds upon the newly supported Batch DSL in Spring XD, which can be used to create composite batch workflows involving sequential jobs, parallel jobs or even the combination of the two.

The Flo canvas textual shell and drag-and-drop interface both support the Spring XD batch DSL. Job definitions in the DSL will be computed automatically for batch jobs composed in the drag-and-drop interface.

Existing composite batch workflows can be viewed by clicking Jobs > Definitions. In future releases, Flo will include comprehensive features for batch pipelines such as metrics, statuses and distributed tracing of batch jobs.

Create a pull request or raise an issue on the source for this page in GitHub