I see Spring boot project has organized starters in a certain way, i.e. starters modules only have pom dependencies in them and autoconfiguration is a separate project where all pom dependencies of all starters have been added as optional dependencies.
It's a different approach from some other big projects like Apache camel. Their starters have pom dependencies as well as autoconfiguration code as well. Also, these starters have dependencies on other internal starters.
My question is - when we should choose one approach over the other and what is the best way to create spring boot starters? What are the downsides/advantages of one over the other? Also, why did the spring boot folks choose to organize starters in the way they did as having pom dependencies and autoconfiguration together seems to be an intuitive way to go?