I came across an interesting issue with ESBG the other day. An ESBG itinerary includes services and resolvers. Services can be thought of itinerary steps and resolvers the configuration or at least a pointer to the configuration for those itinerary steps.
Each itinerary step includes a position attribute which should indicate the order in which the itinerary steps are executed. However, if we submit an itinerary to ESBG the itinerary framework relies on the steps being in positional order within the xml document instead of using the position attribute. So if step 1 comes after step 2 in the itinerary xml then step 1 doesn’t get resolved when advancing the itinerary.
Tip is to remember when constructing an Itinerary ensure the itinerary xml has the steps in positional order from first to last.