diff --git a/pom.xml b/pom.xml
index 41e219335..3fb9c7000 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,7 @@
triggertask
twitter
websocket
+ yahoo-quotes
starter-parent
spring-cloud-stream-app-documentation-maven-plugin
diff --git a/spring-cloud-stream-app-dependencies/pom.xml b/spring-cloud-stream-app-dependencies/pom.xml
index 273790554..f0b44bb44 100644
--- a/spring-cloud-stream-app-dependencies/pom.xml
+++ b/spring-cloud-stream-app-dependencies/pom.xml
@@ -311,6 +311,11 @@
spring-cloud-starter-stream-source-mail
1.0.3.BUILD-SNAPSHOT
+
+ org.springframework.cloud.stream.app
+ spring-cloud-starter-stream-source-yahoo-quotes
+ 1.0.3.BUILD-SNAPSHOT
+
org.springframework.cloud
@@ -350,6 +355,7 @@
test
+
diff --git a/spring-cloud-stream-app-generator/pom.xml b/spring-cloud-stream-app-generator/pom.xml
index afa09ed07..45b5664f2 100644
--- a/spring-cloud-stream-app-generator/pom.xml
+++ b/spring-cloud-stream-app-generator/pom.xml
@@ -164,6 +164,7 @@
org.springframework.cloud.stream.app.test.twitter.TwitterTestConfiguration.class
+
diff --git a/yahoo-quotes/pom.xml b/yahoo-quotes/pom.xml
new file mode 100644
index 000000000..b6d6cb5ef
--- /dev/null
+++ b/yahoo-quotes/pom.xml
@@ -0,0 +1,22 @@
+
+
+ 4.0.0
+ spring-cloud-stream-yahoo-quotes-parent
+ pom
+
+
+ spring-cloud-stream-app-starters
+ org.springframework.cloud.stream.app
+ 1.0.3.BUILD-SNAPSHOT
+ ../starter-parent
+
+
+
+
+ spring-cloud-starter-stream-source-yahoo-quotes
+
+
+
+
\ No newline at end of file
diff --git a/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/README.adoc b/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/README.adoc
new file mode 100644
index 000000000..582601c4c
--- /dev/null
+++ b/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/README.adoc
@@ -0,0 +1,136 @@
+//tag::ref-doc[]
+= Yahoo Quotes Stream Source
+
+This source ingests data from https://developer.yahoo.com/yql/[Yahoo! YQL finance quotes] . It pulls symbols from the API using a configurable cron expression. You can select which fields are going to be returned, or fetch all the fields (83 at the moment).
+
+YQL has a limit of 2000 calls per hour, so the source does its best on batching calls. It's tuned to fetch up to 400 symbols on one single call. This can be changed by modifying the `yahoo.quotes.batchSize` property.
+
+With it's default configuration, the source makes 20 (7925/400) calls per minute to the API.
+
+The source splits the batch calls and send one message per symbol. The content is the same as the one received from Yahoo!
+
+You can play with a `yahoo.quotes.throttle` property to avoid bursts (for example, avoid sending 7900 message at a burst).
+
+[source,javascript]
+----
+{
+ "symbol": "VMW",
+ "Ask": "68.49",
+ "AverageDailyVolume": "2161690",
+ "Bid": "68.16",
+ "AskRealtime": null,
+ "BidRealtime": null,
+ "BookValue": "19.50",
+ "Change_PercentChange": "+0.50 - +0.81%",
+ "Change": "+0.50",
+ "Commission": null,
+ "Currency": "USD",
+ "ChangeRealtime": null,
+ "AfterHoursChangeRealtime": null,
+ "DividendShare": null,
+ "LastTradeDate": "7/18/2016",
+ "TradeDate": null,
+ "EarningsShare": "2.27",
+ "ErrorIndicationreturnedforsymbolchangedinvalid": null,
+ "EPSEstimateCurrentYear": "4.14",
+ "EPSEstimateNextYear": "4.41",
+ "EPSEstimateNextQuarter": "1.05",
+ "DaysLow": "62.14",
+ "DaysHigh": "63.00",
+ "YearLow": "43.25",
+ "YearHigh": "93.43",
+ "HoldingsGainPercent": null,
+ "AnnualizedGain": null,
+ "HoldingsGain": null,
+ "HoldingsGainPercentRealtime": null,
+ "HoldingsGainRealtime": null,
+ "MoreInfo": null,
+ "OrderBookRealtime": null,
+ "MarketCapitalization": "26.55B",
+ "MarketCapRealtime": null,
+ "EBITDA": "1.76B",
+ "ChangeFromYearLow": "19.32",
+ "PercentChangeFromYearLow": "+44.67%",
+ "LastTradeRealtimeWithTime": null,
+ "ChangePercentRealtime": null,
+ "ChangeFromYearHigh": "-30.86",
+ "PercebtChangeFromYearHigh": "-33.03%",
+ "LastTradeWithTime": "4:02pm - 62.57",
+ "LastTradePriceOnly": "62.57",
+ "HighLimit": null,
+ "LowLimit": null,
+ "DaysRange": "62.14 - 63.00",
+ "DaysRangeRealtime": null,
+ "FiftydayMovingAverage": "60.39",
+ "TwoHundreddayMovingAverage": "54.17",
+ "ChangeFromTwoHundreddayMovingAverage": "8.40",
+ "PercentChangeFromTwoHundreddayMovingAverage": "+15.52%",
+ "ChangeFromFiftydayMovingAverage": "2.18",
+ "PercentChangeFromFiftydayMovingAverage": "+3.60%",
+ "Name": "Vmware, Inc. Common stock, Clas",
+ "Notes": null,
+ "Open": "62.46",
+ "PreviousClose": "62.07",
+ "PricePaid": null,
+ "ChangeinPercent": "+0.81%",
+ "PriceSales": "3.92",
+ "PriceBook": "3.18",
+ "ExDividendDate": null,
+ "PERatio": "27.54",
+ "DividendPayDate": null,
+ "PERatioRealtime": null,
+ "PEGRatio": "1.11",
+ "PriceEPSEstimateCurrentYear": "15.11",
+ "PriceEPSEstimateNextYear": "14.19",
+ "Symbol": "VMW",
+ "SharesOwned": null,
+ "ShortRatio": "8.75",
+ "LastTradeTime": "4:02pm",
+ "TickerTrend": null,
+ "OneyrTargetPrice": "63.12",
+ "Volume": "5474990",
+ "HoldingsValue": null,
+ "HoldingsValueRealtime": null,
+ "YearRange": "43.25 - 93.43",
+ "DaysValueChange": null,
+ "DaysValueChangeRealtime": null,
+ "StockExchange": "NYQ",
+ "DividendYield": null,
+ "PercentChange": "+0.81%"
+ }
+
+----
+
+
+== Options
+
+The **$$yahooquotes$$** $$source$$ has the following options:
+
+//tag::configuration-properties[]
+$$yahoo.quotes.symbols$$:: $$Comma delimited list of symbols$$ *($$String$$, default: `A list of 7925 symbols from NASDAQ and NYSE`)*
+$$yahoo.quotes.fields$$:: $$Field selector to filter which fields should be returned$$ *($$String$$, default: `*` all fields)*
+$$yahoo.quotes.batchSize$$:: $$How many symbols to fetch per call$$ *($$Integer$$, default: `400`)*
+$$yahoo.quotes.cronExpression:: $$Cron expression to determine when to poll for quotes$$ *($$String$$, default: `0 * 9-17 * * MON-FRI` Only polls during exchange hours)*
+$$yahoo.quotes.zone:: $$Timezone used for the cron expression$$ *($$String$$, default: `EST`)*
+$$yahoo.quotes.throttle$$:: $$How many messages per second should the source emmit$$ *($$Integer$$, default: `null`, if set the source will throttle message output instead of sending a burst. Be mindful of the number of symbols and frequency when setting this in order to avoid blocking the output queue)*
+//end::configuration-properties[]
+
+== Example : Query for Google and Apple stocks every 5 seconds fetching only the symbol, bid and ask price:
+
+[source,yaml]
+----
+yahoo:
+ quotes:
+ symbol: GOOG,AAPL
+ fields: Symbol,Ask,Bid
+ cronExpression: 0/5 * * * * *
+
+----
+
+//end::ref-doc[]
+== Build
+
+```
+$ mvn clean package
+```
+
diff --git a/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/pom.xml b/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/pom.xml
new file mode 100644
index 000000000..bf435237d
--- /dev/null
+++ b/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/pom.xml
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+
+ spring-cloud-starter-stream-source-yahoo-quotes
+ jar
+ Yahoo YQL quotes source
+
+
+ spring-cloud-stream-yahoo-quotes-parent
+ org.springframework.cloud.stream.app
+ 1.0.3.BUILD-SNAPSHOT
+
+
+
+
+
+ org.isomorphism
+ token-bucket
+ 1.6
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
\ No newline at end of file
diff --git a/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/src/main/java/org/springframework/cloud/stream/app/yahoo/quotes/source/YahooQuotesClient.java b/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/src/main/java/org/springframework/cloud/stream/app/yahoo/quotes/source/YahooQuotesClient.java
new file mode 100644
index 000000000..b449d09d8
--- /dev/null
+++ b/yahoo-quotes/spring-cloud-starter-stream-source-yahoo-quotes/src/main/java/org/springframework/cloud/stream/app/yahoo/quotes/source/YahooQuotesClient.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2016 original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.springframework.cloud.stream.app.yahoo.quotes.source;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Vinicius Carvalho
+ */
+public interface YahooQuotesClient {
+ List