// Apache Streams (incubating)
// Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
// --------------------------------------------------------------------------------
digraph g {

  //providers
  ElasticsearchPersistReader [label="ElasticsearchPersistReader",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistReader.java"];

  //persisters
  WebHdfsPersistWriter [label="WebHdfsPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];

  //data
  source [label="es://{indexes}/{types}",shape=box];
  destination [label="hdfs://{index}/{type}",shape=box];

  //stream
  source -> ElasticsearchPersistReader
  ElasticsearchPersistReader -> WebHdfsPersistWriter [label="String"];
  WebHdfsPersistWriter -> destination
}