As I pointed out in a comment, you might need to get your requirements straight before you think about how to implement them. I.e. what needs to happen with the additional orders? Why not store them all as events and if nothing can be delivered a) trigger more production and send an email informing the customer of a delayed delivery giving them the option to cancel the order? or b) just directly send an email that the order cannot be fulfilled There is nothing in the information you provided that implies a need for synchronous communication? or ... there are many ways to deal with this problem on the process level. Clarify that first and then see what implementation matches best.
That being said all guidelines I know that praise async communication for microservices push it as a preferred way of communication where possible to increase decoupling and arguably scalability. But all I know go on to say that sync communication is fine if it matches your requirements better (enough don't even make a point about going async with events, to them it is just another variant). There is not the exact one way to do microservices, it is a relatively broad term.