[[dataflow-documentation]]
= Spring Cloud Data Flow Overview

[partintro]
--
This section provides a brief overview of the Spring Cloud Data Flow reference documentation. Think of
it as map for the rest of the document. You can read this reference guide in a linear
fashion, or you can skip sections if something doesn't interest you.
--

[[dataflow-documentation-intro]]
== Introducing Spring Cloud Data Flow
Spring Cloud Data Flow is a cloud-native orchestration service for composable microservice applications on modern runtimes. With Spring Cloud Data Flow, developers can create and orchestrate data pipelines for common use cases such as data ingest, real-time analytics, and data import/export.

Spring Cloud Data Flow is the cloud native redesign of link:https://projects.spring.io/spring-xd/[Spring XD] – a project that aimed to simplify development of Big Data applications. The stream and batch modules from Spring XD are refactored as Spring Boot based link:https://cloud.spring.io/spring-cloud-stream-app-starters/[stream] and link:https://cloud.spring.io/spring-cloud-task-app-starters/[task/batch] microservice applications respectively. These applications are now autonomous deployment units and they can "natively" run in modern runtimes such as Cloud Foundry, Apache YARN, Apache Mesos, and Kubernetes.

Spring Cloud Data Flow offers a collection of patterns and best practices for microservices-based distributed streaming and task/batch data pipelines.

=== Features

* Develop using DSL, REST-APIs, Dashboard, and the drag-and-drop GUI - Flo
* Create, unit-test, troubleshoot and manage microservice applications in isolation
* Build data pipelines rapidly using the out-of-the-box stream and task/batch applications
* Consume microservice applications as maven or docker artifacts
* Scale data pipelines without interrupting data flows
* Orchestrate data-centric applications on a variety of modern runtime platforms including Cloud Foundry, Apache YARN, Apache Mesos, and Kubernetes
* Take advantage of metrics, health checks, and the remote management of each microservice application



