When we mark a dependency as provided it indicates the shade and assembly plugins to not include this particular dependency in the uber topology jar because it will be provided on the class path by the system.
We have been doing this for all of our kafka dependencies incorrectly, storm-cassandra does this for cassandra-driver-core, and storm-starter is doing it for storm-clojure as well.
This means that storm-starter does not have any version of kafka or storm-clojure packaged it the resulting jar and any example that uses kafka, TridentKafkaWordCount, will fail with missing class errors.
storm-starter/pom.xml has should change its dependency on storm-kafka to be compile, and it should delete dependencies on kafka and kafka-clients as those should come from storm-kafka as transitive dependencies.
the main pom.xml should not have kafka-clients marked as provided in the dependency management section.
storm-kafka should remove its provided tag on kafka, and flux examples + storm-sql-kafka should remove dependencies on kafka and kafka-clients, and storm-kafka should not me marked as provided.
the flux and sql code I am not as familiar with, but looking at them, and running `mvn dependecy:tree` and `mvn dependency:analyze` it looks like