This document discusses modeling service choreographies and the challenges of asynchronous communication. It introduces the concept of desynchronizability checking to detect errors that can occur when a choreography assumes synchronous communication but the underlying services communicate asynchronously. Several resolution strategies are presented to address errors detected by desynchronizability checking, including precedence agreements, individual decisions, and negotiation of outcomes upon conflicting messages. The challenges of asynchronous communication must be considered when modeling choreographies.