Documentation about "processing.guarantee" says:
The processing guarantee that should be used. Possible values are at_least_once(default) and exactly_once. Note that exactly-once processing requires a cluster of at least three brokers by default what is the recommended setting for production; for development you can change this, by adjusting broker setting `transaction.state.log.replication.factor`
If one only set transaction.state.log.replication.factor=1 but leave transaction.state.log.min.isr with default value (which is 2) the Streams Application will break.
Hope you guys modify the doc, thanks.