Asynchronous microservices are powerful but we're finding that we need to transition message exchanges into synchronous communication in some areas to ease the decomposition process, generally at our public API interfaces. This allows us to decompose the backend into asynchronous processes without yet having to also transition existing synchronous consumers of the APIs. Are there any 'best practices' for handling such a transition, from sync to async and back again, within the platform beyond a poll waiting for the necessary internal state to continue (within the sync API)?
I've attached a diagram that will hopefully clarify this issue.
Thanks!