Nice post. Yet, in my opinion microservices architecture should be based (as much as possible) on asynchronous interactions. One of the main idea between this architecture is to favor autonomy over authority. Synchronous interactions result in increasing the coupling and losing autonomy.
I think the solution is simply to stop using middlewares like BW.
You’re right it’s more elegant and it’s working with many algorithms where we just need a view of the initial array. It’s not very common to do a sort of “backtracking” to expand the current subarray with a previous set of data.