---
# 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:  http://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. 

## 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

<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="http://cloud.spring.io/spring-cloud-config" repo_url="http://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="http://cloud.spring.io/spring-cloud-netflix" repo_url="http://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="http://cloud.spring.io/spring-cloud-bus" repo_url="http://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 Cloudfoundry. Makes it easy to implement SSO and OAuth2 protected resources, and also to create a Cloudfoundry servive broker.
{% endcapture %}

{% include project_block.md site_url="http://github.com/spring-cloud/spring-cloud-cloudfoundry" repo_url="http://github.com/spring-cloud/spring-cloud-cloudfoundry" project_title="Spring Cloud for Cloud Foundry" 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="http://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="http://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.
{% endcapture %}

{% include project_block.md site_url="http://github.com/spring-cloud/spring-cloud-starters" repo_url="http://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="http://github.com/spring-cloud/spring-cloud-cli" repo_url="http://github.com/spring-cloud/spring-cloud-cli" project_title="Spring Cloud CLI" project_description=project_description %}

<span id="quick-start"></span>
## Quick Start

{% include download_widget.md %}

## Release Trains

Spring Cloud is an umbrella project consisting of independent projects with, in principle, different
release cadences. To manage the protfolio 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.

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

Release train contents:

|Component|Angel.SR3 | Brixton.BUILD-SNAPSHOT | 
|---------|-------|------|
|spring-cloud-aws | 1.0.2.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-bus | 1.0.2.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-cli | 1.0.3.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-commons | 1.0.2.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-config | 1.0.2.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-netflix | 1.0.3.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-security | 1.0.2.RELEASE | 1.1.0.BUILD-SNAPSHOT |
|spring-cloud-starters | 1.0.3.RELEASE |  |
|spring-cloud-zookeeper |  | 1.0.0.BUILD-SNAPSHOT |
|spring-cloud-sleuth |  | 1.0.0.BUILD-SNAPSHOT |
|spring-cloud-consul |  | 1.0.0.BUILD-SNAPSHOT |

{% 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 AuthorizationServer](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)

{% endcapture %}

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