Asynchronously sends the specified payload to the remote endpoint. This method's implementation MUST be thread-safe as it might be called from different threads. This method MUST NOT block. Writes guarantee ordering of messages, but not their reception. The call to write returns with a boolean indicating if the channel was ready for writes or not. A return value of false indicates that the channel is not yet ready for deliver (e.g.: the write buffer is full)and the sender needs to wait until the channel becomes ready again. Returning false also means that the current write was dropped (this MUST be guaranteed to ensure duplication-free delivery).