There have been recent improvements in kafka which improve error handling in streams.
The two changes which might be particularly useful are the improvements in how to handle timeouts and handling streams which enter error state
https://cwiki.apache.org/confluence/display/KAFKA/KIP-572%3A+Improve+timeouts+and+retries+in+Kafka+Streams
https://cwiki.apache.org/confluence/display/KAFKA/KIP-671%3A+Introduce+Kafka+Streams+Specific+Uncaught+Exception+Handler