Something that is interesting here is on-boarding new devices. Since all the encryption is done by each message being sent to the {all sender devices (M), all receiver devices (N)} you end up with M+N encryptions.
When onboarding a new device, it needs some amount of state in order for conversations to have a useful context. So the new sender device gets a bundle of recent conversations from who-ever onboarding it. I'm not clear on how you could control the amount of context or add more state, but that is off-topic.
What I'm wondering is: Does this have a race condition? Say that you have:
Sender A knows about receivers {B,C,D}
Sender A sends message Foo to {B,C,D}
Receiver E is onboarded at the same time Foo is sent.
Is there no state where E does not receive the message?
I'm sure that this is accounted for and out of scope in a high level blog post, but I am curious how that part works.
When onboarding a new device, it needs some amount of state in order for conversations to have a useful context. So the new sender device gets a bundle of recent conversations from who-ever onboarding it. I'm not clear on how you could control the amount of context or add more state, but that is off-topic.
What I'm wondering is: Does this have a race condition? Say that you have:
Sender A knows about receivers {B,C,D} Sender A sends message Foo to {B,C,D} Receiver E is onboarded at the same time Foo is sent. Is there no state where E does not receive the message?
I'm sure that this is accounted for and out of scope in a high level blog post, but I am curious how that part works.