I know that the spring DSL can be a very powerful tool but, how do you know how to build one from scratch depending on your different needs? When I see an integration flow online it's easy to follow and I can generally make sense of the flow. However, when building something a little bit more custom how do you know what goes into the integration flow? Im new to spring integration and the Spring DSL in general so it would be useful to know where is a good place to start and what is the best way of thinking about things when it comes to spring integration.