Synchronous: Request waits for response. Simple. Good for: Login validation, reading user profile, checking inventory.
Asynchronous: Request returns immediately. Processing happens later. Good for: Sending emails, processing uploads, generating reports.
Rule of thumb: If the user needs the result to continue, use sync. If the work can happen in the background, use async. Don't make users wait for things they don't need immediately.