---
# The name of your project
title: Spring Cloud

badges:


# Customize your project's badges. Delete any entries that do not apply.
custom:
- name: Source (GitHub)
url:  https://github.com/spring-cloud
icon: github

- name: StackOverflow
url:  https://stackoverflow.com/questions/tagged/spring-cloud
icon: stackoverflow


---
<!DOCTYPE HTML>
<html lang="en-US">


    {% capture billboard_description %}

    Spring Cloud provides tools for developers to quickly build some of
    the common patterns in distributed systems (e.g. configuration
    management, service discovery, circuit breakers, intelligent routing,
    micro-proxy, control bus, one-time tokens, global locks, leadership
    election, distributed sessions, cluster state). Coordination of
    distributed systems leads to boiler plate patterns, and using Spring
    Cloud developers can quickly stand up services and applications that
    implement those patterns. They will work well in any distributed
    environment, including the developer's own laptop, bare metal data
    centres, and managed platforms such as Cloud Foundry.

    {% endcapture %}

    {% capture main_content %}

    Spring Cloud builds on Spring Boot by providing a bunch of libraries
    that enhance the behaviour of an application when added to the
    classpath. You can take advantage of the basic default behaviour to
    get started really quickly, and then when you need to, you can
    configure or extend to create a custom solution.

    <span id="quick-start"></span>

    ## Quick Start

    The release train label (see below) is actually only used explicitly
    in one artifact: "spring-cloud-dependencies" (all the others have
    normal numeric release labels tied to their parent project). The
    dependencies POM is the one you can use as a BOM for dependency
    management. Example using the latest version with the config client
    and eureka (change the artifact ids to pull in other starters):

    {% include download_widget.md %}

    ## Features

    Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to
    cover
    others.

    * Distributed/versioned configuration
    * Service registration and discovery
    * Routing
    * Service-to-service calls
    * Load balancing
    * Circuit Breakers
    * Global locks
    * Leadership election and cluster state
    * Distributed messaging

    Spring Cloud takes a very declarative approach, and often you get a
    lot of fetaures with just a classpath change and/or an
    annotation. Example application that is a discovery client:

    ```java
    @SpringBootApplication
    @EnableDiscoveryClient
    public class Application {
    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }
    ```

    <a name="main-projects"></a>

    ## Main Projects

    <!-- Spring Cloud Config -->
    {% capture project_description %}
    Centralized external configuration management backed by a git repository. The configuration resources map directly
    to
    Spring `Environment` but could be used by non-Spring applications if desired.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-config"
    repo_url="https://github.com/spring-cloud/spring-cloud-config" project_title="Spring Cloud Config"
    project_description=project_description %}

    <!-- Spring Cloud Netflix -->
    {% capture project_description %}
    Integration with various Netflix OSS components (Eureka, Hystrix, Zuul, Archaius, etc.).
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-netflix"
    repo_url="https://github.com/spring-cloud/spring-cloud-netflix" project_title="Spring Cloud Netflix"
    project_description=project_description %}

    <!-- Spring Cloud Bus -->
    {% capture project_description %}
    An event bus for linking services and service instances together with distributed messaging. Useful for propagating
    state changes across a cluster (e.g. config change events).
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-bus"
    repo_url="https://github.com/spring-cloud/spring-cloud-bus" project_title="Spring Cloud Bus"
    project_description=project_description %}

    <!-- Spring Cloud Cloudfoundry -->
    {% capture project_description %}
    Integrates your application with Pivotal Cloud Foundry. Provides a service discovery implementation and also makes
    it
    easy to implement SSO and OAuth2 protected resources.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-cloudfoundry"
    repo_url="https://github.com/spring-cloud/spring-cloud-cloudfoundry" project_title="Spring Cloud for Cloud Foundry"
    project_description=project_description %}

    <!-- Spring Cloud Open Service Broker -->
    {% capture project_description %}
    Provides a starting point for building a service broker that implements the Open Service Broker API.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-open-service-broker/"
    repo_url="https://github.com/spring-cloud/spring-cloud-open-service-broker" project_title="Spring Cloud Open Service
    Broker" project_description=project_description %}

    <!-- Spring Cloud Cluster -->
    {% capture project_description %}
    Leadership election and common stateful patterns with an abstraction and implementation for Zookeeper, Redis,
    Hazelcast,
    Consul.
    {% endcapture %}

    {% include project_block.md site_url="/spring-cloud" repo_url="https://github.com/spring-cloud/spring-cloud-cluster"
    project_title="Spring Cloud Cluster" project_description=project_description %}

    <!-- Spring Cloud Consul -->
    {% capture project_description %}
    Service discovery and configuration management with Hashicorp Consul.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-consul"
    repo_url="https://github.com/spring-cloud/spring-cloud-consul" project_title="Spring Cloud Consul"
    project_description=project_description %}

    <!-- Spring Cloud Security -->
    {% capture project_description %}
    Provides support for load-balanced OAuth2 rest client and authentication header relays in a Zuul proxy.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-security"
    repo_url="https://github.com/spring-cloud/spring-cloud-security" project_title="Spring Cloud Security"
    project_description=project_description %}

    <!-- Spring Cloud Sleuth -->
    {% capture project_description %}
    Distributed tracing for Spring Cloud applications, compatible with Zipkin, HTrace and log-based (e.g. ELK) tracing.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-sleuth"
    repo_url="https://github.com/spring-cloud/spring-cloud-sleuth" project_title="Spring Cloud Sleuth"
    project_description=project_description %}

    <!-- Spring Cloud Data Flow -->
    {% capture project_description %}
    A cloud-native orchestration service for composable microservice applications on modern runtimes. Easy-to-use DSL,
    drag-and-drop GUI, and REST-APIs together simplifies the overall orchestration of microservice based data pipelines.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-dataflow"
    repo_url="https://github.com/spring-cloud/spring-cloud-dataflow" project_title="Spring Cloud Data Flow"
    project_description=project_description %}

    <!-- Spring Cloud Stream -->
    {% capture project_description %}
    A lightweight event-driven microservices framework to quickly build applications that can connect to external
    systems.
    Simple declarative model to send and receive messages using Apache Kafka or RabbitMQ between Spring Boot apps.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-stream"
    repo_url="https://github.com/spring-cloud/spring-cloud-stream" project_title="Spring Cloud Stream"
    project_description=project_description %}

    <!-- Spring Cloud Stream App Starters -->
    {% capture project_description %}
    Spring Cloud Stream App Starters are Spring Boot based Spring Integration applications that provide integration with
    external systems.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-stream-app-starters"
    repo_url="https://github.com/spring-cloud/spring-cloud-stream-app-starters" project_title="Spring Cloud Stream App
    Starters" project_description=project_description %}

    <!-- Spring Cloud Task -->
    {% capture project_description %}
    A short-lived microservices framework to quickly build applications that perform finite amounts of data processing.
    Simple declarative for adding both functional and non-functional features to Spring Boot apps.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-task"
    repo_url="https://github.com/spring-cloud/spring-cloud-task" project_title="Spring Cloud Task"
    project_description=project_description %}

    <!-- Spring Cloud Task App Starters -->
    {% capture project_description %}
    Spring Cloud Task App Starters are Spring Boot applications that may be any process including Spring Batch jobs that
    do
    not run forever, and they end/stop after a finite period of data processing.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-task-app-starters"
    repo_url="https://github.com/spring-cloud/spring-cloud-task-app-starters" project_title="Spring Cloud Task App
    Starters"
    project_description=project_description %}

    <!-- Spring Cloud Zookeeper -->
    {% capture project_description %}
    Service discovery and configuration management with Apache Zookeeper.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-zookeeper"
    repo_url="https://github.com/spring-cloud/spring-cloud-zookeeper" project_title="Spring Cloud Zookeeper"
    project_description=project_description %}

    <!-- Spring Cloud AWS -->
    {% capture project_description %}
    Easy integration with hosted Amazon Web Services. It offers a convenient way to interact with AWS provided services
    using well-known Spring idioms and APIs, such as the messaging or caching API. Developers can build their
    application
    around the hosted services without having to care about infrastructure or maintenance.
    {% endcapture %}

    {% capture site_url %}
    {{ site.projects_site_url }}/spring-cloud-aws
    {% endcapture %}

    {% include project_block.md site_url=site_url repo_url="https://github.com/spring-cloud/spring-cloud-aws"
    project_title="Spring Cloud for Amazon Web Services" project_description=project_description %}

    <!-- Spring Cloud Connectors -->
    {% capture project_description %}
    Makes it easy for PaaS applications in a variety of platforms to connect to backend services like
    databases and message brokers (the project formerly known as "Spring Cloud").
    {% endcapture %}

    {% capture site_url %}
    {{ site.projects_site_url }}/spring-cloud-connectors
    {% endcapture %}

    {% include project_block.md site_url=site_url repo_url="https://github.com/spring-cloud/spring-cloud-connectors"
    project_title="Spring Cloud Connectors" project_description=project_description %}

    <!-- Spring Cloud Starters -->
    {% capture project_description %}
    Spring Boot-style starter projects to ease dependency management for consumers of Spring Cloud. (Discontinued as a
    project and merged with the other projects after Angel.SR2.)
    {% endcapture %}

    {% include project_block.md site_url="https://github.com/spring-cloud/spring-cloud-starters"
    repo_url="https://github.com/spring-cloud/spring-cloud-starters" project_title="Spring Cloud Starters"
    project_description=project_description %}

    <!-- Spring Cloud CLI -->
    {% capture project_description %}
    Spring Boot CLI plugin for creating Spring Cloud component applications quickly in Groovy
    {% endcapture %}

    {% include project_block.md site_url="https://github.com/spring-cloud/spring-cloud-cli"
    repo_url="https://github.com/spring-cloud/spring-cloud-cli" project_title="Spring Cloud CLI"
    project_description=project_description %}

    <!-- Spring Cloud Contract -->
    {% capture project_description %}
    Spring Cloud Contract is an umbrella project holding solutions that help users in successfully implementing the
    Consumer
    Driven Contracts approach.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-contract"
    repo_url="https://github.com/spring-cloud/spring-cloud-contract" project_title="Spring Cloud Contract"
    project_description=project_description %}

    <!-- Spring Cloud Gateway -->
    {% capture project_description %}
    Spring Cloud Gateway is an intelligent and programmable router based on Project Reactor.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-gateway"
    repo_url="https://github.com/spring-cloud/spring-cloud-gateway" project_title="Spring Cloud Gateway"
    project_description=project_description %}

    <!-- Spring Cloud OpenFeign -->
    {% capture project_description %}
    Spring Cloud OpenFeign provides integrations for Spring Boot apps through autoconfiguration and binding to the
    Spring
    Environment and other Spring programming model idioms.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-openfeign"
    repo_url="https://github.com/spring-cloud/spring-cloud-openfeign" project_title="Spring Cloud OpenFeign"
    project_description=project_description %}

    <!-- Spring Cloud Pipelines -->
    {% capture project_description %}
    Spring Cloud Pipelines provides an opinionated deployment pipeline with steps to ensure that your application can be
    deployed in zero downtime fashion and easilly rolled back of something goes wrong.
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-pipelines"
    repo_url="https://github.com/spring-cloud/spring-cloud-pipelines" project_title="Spring Cloud Pipelines"
    project_description=project_description %}

    <!-- Spring Cloud Function -->
    {% capture project_description %}
    Spring Cloud Function promotes the implementation of business logic via functions. It supports a uniform programming
    model across serverless providers, as well as the ability to run standalone (locally or in a PaaS).
    {% endcapture %}

    {% include project_block.md site_url="https://cloud.spring.io/spring-cloud-function"
    repo_url="https://github.com/spring-cloud/spring-cloud-function" project_title="Spring Cloud Function"
    project_description=project_description %}

    ## Release Trains

    Spring Cloud is an umbrella project consisting of independent projects with, in principle, different
    release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated
    set of dependencies on the individual project (see below). The release trains have names, not
    versions, to avoid confusion with the sub-projects. The names are an alphabetic sequence (so
    you can sort them chronologically) with names of London Tube stations ("Angel" is the first
    release, "Brixton" is the second). When point releases of the individual projects accumulate to
    a critical mass, or if there is a critical bug in one of them that needs to be available to everyone,
    the release train will push out "service releases" with names ending ".SRX", where "X"
    is a number.

    Release train contents:

    <!-- BEGIN COMPONENTS -->

    |Component | Edgware.SR5 | Finchley.SR1 | Finchley.BUILD-SNAPSHOT|
    |--------------------------------------|-----------------|---------------------|------------------------|
    |spring-cloud-aws | 1.2.3.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-cloud-bus | 1.3.3.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-cloud-cli | 1.4.1.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-cloud-commons | 1.3.5.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-contract | 1.2.6.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-config | 1.4.5.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-netflix | 1.4.6.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-security | 1.2.3.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-cloud-cloudfoundry | 1.1.2.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-cloud-consul | 1.3.5.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-sleuth | 1.3.5.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-stream | Ditmars.SR4 | Elmhurst.SR1 | Elmhurst.BUILD-SNAPSHOT|
    |spring-cloud-zookeeper | 1.2.2.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-boot | 1.5.16.RELEASE | 2.0.4.RELEASE | 2.0.4.BUILD-SNAPSHOT |
    |spring-cloud-task | 1.2.3.RELEASE | 2.0.0.RELEASE | 2.0.1.BUILD-SNAPSHOT |
    |spring-cloud-vault | 1.1.2.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-gateway | 1.0.2.RELEASE | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-openfeign | | 2.0.1.RELEASE | 2.0.2.BUILD-SNAPSHOT |
    |spring-cloud-function | 1.0.1.RELEASE | 1.0.0.RELEASE | 1.0.1.BUILD-SNAPSHOT |

    <!-- END COMPONENTS -->

    Finchley builds and works with Spring Boot 2.0.x, and is not expected
    to work with Spring Boot 1.5.x.

    Note: The Dalston release train will [reach
    end-of-life](https://spring.io/blog/2018/06/19/spring-cloud-finchley-release-is-available) in December 2018. Edgware
    will follow the end-of-life cycle of Spring Boot 1.5.x.

    The Dalston and Edgware release trains build on Spring Boot 1.5.x, and
    are not expected to work with Spring Boot 2.0.x.

    NOTE: The Camden release train was [marked
    end-of-life](https://spring.io/blog/2018/06/19/spring-cloud-finchley-release-is-available).

    The Camden release train builds on Spring Boot 1.4.x, but is also
    tested with 1.5.x.

    NOTE: The Brixton and Angel release trains were [marked
    end-of-life](https://spring.io/blog/2017/07/21/spring-cloud-dalston-sr2-is-available-now#end-of-life-for-angel-and-brixton-release-trains)
    (EOL) in July 2017.

    The Brixton release train builds on Spring Boot 1.3.x, but is also
    tested with 1.4.x.

    The Angel release train builds on Spring Boot 1.2.x, and is
    incompatible in some areas with Spring Boot 1.3.x. Brixton builds on
    Spring Boot 1.3.x and is similarly incompatible with 1.2.x. Some
    libraries and most apps built on Angel will run fine on Brixton, but
    changes will be required anywhere that the OAuth2 features from
    spring-cloud-security 1.0.x are used (they were mostly moved to Spring
    Boot in 1.3.0).

    Use your dependency management tools to control the version. If you
    are using Maven remember that the first version declared wins, so
    declare the BOMs in order, with the first one usually being the most
    recent (e.g. if you want to use Spring Boot 1.3.6 with Brixton.RELEASE, put
    the Boot BOM first). The same rule applies to Gradle if you use the
    Spring dependency management plugin.

    > NOTE: The release train contains a
    > `spring-cloud-dependencies` as well as the
    > `spring-cloud-starter-parent`. You can use the parent as you would
    > the `spring-boot-starter-parent` (if you are using Maven).
    > If you only need dependency management, the "dependencies"
    > version is a BOM-only version of the same thing (it just
    > contains dependency management and no plugin declarations
    > or direct references to Spring or Spring Boot). If you are
    > using the Spring Boot parent POM, then you can use the BOM from
    > Spring Cloud. The opposite is not true: using the Cloud parent
    > makes it impossible, or at least unreliable, to also use the
    > Boot BOM to change the version of Spring Boot and its dependencies.

    > NOTE: If you find anything wrong or outdated on this page, please open an issue in
    [this](https://github.com/spring-projects/spring-cloud) repo.

    {% endcapture %}

    {% capture related_resources %}

    ### Sample Projects

    * [Config Server](https://github.com/spring-cloud-samples/configserver)
    * [Service Registry](https://github.com/spring-cloud-samples/eureka)
    * [Circuit Breaker Dashboard](https://github.com/spring-cloud-samples/hystrix-dashboard)
    * [Business Application](https://github.com/spring-cloud-samples/customers-stores) (Customers and Stores)
    * [OAuth2 Authorization Server](https://github.com/spring-cloud-samples/authserver)
    * [OAuth2 SSO Client](https://github.com/spring-cloud-samples/sso)
    * [Integration Test Samples](https://github.com/spring-cloud-samples/tests)
    * [Spring Cloud Contract Samples](https://github.com/spring-cloud-samples/spring-cloud-contract-samples)

    {% endcapture %}

    {% include project_page.html %}
</html>
