How do delivery and read receipts work?

For every message in a conversation, the sender will receive delivery and read receipts from all the other participants in that conversation which will set specific flags on that message. These receipts can increase the size of the conversation, which can have an impact on sync and UI performance.

For example, in a conversation with two participants, when one user sends a message, the other participant will send one delivery receipt and one read receipt, a 1:2 ratio. But in a conversation with five users, when one user sends a message, there will be 4 delivery and 4 read receipts, a 1:8 ratio.

For conversations with over 5 participants, Layer recommends disabling delivery receipts which will speed up syncing and improve overall performance. Disabling these receipts can only be done when a conversation is initialized in code.


Conversation conversation = Conversation.newInstance(new ConversationOptions().deliveryReceipts(false), participants);


BOOL deliveryReceiptsEnabled = false;
NSError *error = nil;
LYRConversation *conversation = [layerClient newConversationWithParticipants:participants options:@{LYRConversationOptionsDeliveryReceiptsEnabledKey: @(deliveryReceiptsEnabled) } error:&error];
Have more questions? Submit a request