anchor.diff:  [source,bash]
   ----
   stream deploy ticktock --properties "app.a.fixed-delay=4,app.b.level=ERROR"
  +----
  +
  +[[passing_producer_consumer_properties]]
  +==== Passing Spring Cloud Stream properties for the application
  +Spring Cloud Data Flow sets the `required` Spring Cloud Stream properties for the applications inside the stream. Most importantly, the `spring.cloud.stream.bindings.<input/output>.destination` is set internally for the apps to bind.
  +
  +If someone wants to override any of the Spring Cloud Stream properties, they can be set via deployment properties.
  +
  +For example, for the below stream
  +
  +[source,bash]
  +----
  +dataflow:> stream create --definition "http | transform --expression=payload.getValue('hello').toUpperCase() | log" --name ticktock
  +----
  +
  +if there are multiple binders available in the classpath for each of the applications and the binder is chosen for each deployment then the stream can be deployed with the specific Spring Cloud Stream properties as:
  +
  +[source,bash]
  +----
  +dataflow:>stream deploy ticktock --properties "app.time.spring.cloud.stream.bindings.output.binder=kafka,app.transform.spring.cloud.stream.bindings.input.binder=kafka,app.transform.spring.cloud.stream.bindings.output.binder=rabbit,app.log.spring.cloud.stream.bindings.input.binder=rabbit"
  +----
  +
  +NOTE: Overriding the destination names is not recommended as Spring Cloud Data Flow takes care of setting this internally.
  +
  +==== Passing per-binding producer consumer properties
  +A Spring Cloud Stream application can have producer and consumer properties set `per-binding` basis.
  +While Spring Cloud Data Flow supports specifying short-hand notation for per binding producer properties such as `partitionKeyExpression`, `partitionKeyExtractorClass` as described in <<passing_stream_partition_properties>>, all the supported Spring Cloud Stream producer/consumer properties can be set as Spring Cloud Stream properties for the app directly as well.
  +
  +The consumer properties can be set for the `inbound` channel name with the prefix `app.[app/label name].spring.cloud.stream.bindings.<channelName>.consumer.` and the producer properties can be set for the `outbound` channel name with the prefix `app.[app/label name].spring.cloud.stream.bindings.<channelName>.producer.`.
  +For example, the stream
  +
  +[source,bash]
  +----
  +dataflow:> stream create --definition "time | log" --name ticktock
  +----
  +
  +can be deployed with producer/consumer properties as:
  +
  +[source,bash]
  +----
  +dataflow:>stream deploy ticktock --properties "app.time.spring.cloud.stream.bindings.output.producer.requiredGroups=myGroup,app.time.spring.cloud.stream.bindings.output.producer.headerMode=raw,app.log.spring.cloud.stream.bindings.input.consumer.concurrency=3,app.log.spring.cloud.stream.bindings.input.consumer.maxAttempts=5"
  +----
  +
  +The `binder` specific producer/consumer properties can also be specified in a similar way.
  +
  +For instance
  +
  +[source,bash]
  +----
  +dataflow:>stream deploy ticktock --properties "app.time.spring.cloud.stream.rabbit.bindings.output.producer.autoBindDlq=true,app.log.spring.cloud.stream.rabbit.bindings.input.consumer.transacted=true"
   ----
   
   [[passing_stream_partition_properties]]
  
positive.code: Note that the properties `fixed-delay` and `level` defined above for the apps `time` and `log` are the 'short-form' property names provided by the shell completion.
  These 'short-form' property names are applicable only for the white-listed properties and in all other cases, only _fully qualified_ property names should be used.
  
  
  ==== Passing application properties when deploying a stream
  
  
negative.code: ----
  dataflow:>stream deploy ticktock --properties "app.time.fixed-delay=4,app.log.level=ERROR"
  ----
  
  [[spring-cloud-dataflow-destroy-stream]]
  == Destroying a Stream
  