When you need a instant response time and you need to maintain some shortest transactions. Synchronous architectures can provide performance if this requirements is crucial. Instead, asynchronous architectures is much more scalable than synchronous.
you could look at the book 'Sun Certified Enterprise Architect for J2EE Study Guid(Exam 310-051)' (by Paul Allen and Joseph Bambara). In Chapter8 Messaging, the author gives multiple study cases for appropriate using sync/async communications, here I list somes,
async: *message system in which a response is not required or not immediately required *high-volume transaction processing capability for sending messages *uses your system hardware in an efficient manner
sync: *system login, you input your account information and submit the form, and then system authenticate these information and allow/not allow you login *result searching, you input the search criterias in the search text field, submit, and system responses the searching result *credit card authorization