Consumer Messaging Platform — WhatsApp-Class System  ·  View 08 of 23

Fanout by Conversation Class

Four conversation classes, four fanout strategies — showing where the cost sits and why group messaging stays affordable at 1024 members.

Editable source SVG draw.io All views
Publish
Publish
Resolve recipients
Resolve recipients
Encrypt
Encrypt
Fan out
Fan out
Deliver
Deliver
1:1 chat
1:1 chat
Sender device
Sender device
Peer devices, 1 to 5
Peer devices, 1 to 5
Pairwise Signal session
One ciphertext per device
Pairwise Signal session...
Direct enqueue
Direct enqueue
Socket or push
Socket or push
Group, up to 1024
Group, up to 1024
Member device
Member device
Group Service
Members to devices
Group Service...
Sender Key
One ciphertext, N key copies
Sender Key...
Sharded fanout workers
Hash by device id
Sharded fanout workers...
Per-device inbox
Per-device inbox
Community announcement
Community announcement
Admin device
Admin device
Announcement roster
Read-only members
Announcement roster...
Sender Key, rekey on leave
Sender Key, rekey on leave
Batched fanout with backpressure
Batched fanout with backpressure
Rate-shaped delivery
Rate-shaped delivery
Broadcast list
Broadcast list
Sender device
Sender device
Private recipient list
No shared identity
Private recipient list...
Pairwise sessions
Pairwise sessions
N independent sends
N independent sends
Arrives as a 1:1 chat
Arrives as a 1:1 chat
Fanout by Conversation Class
Fanout by Conversation Class
Sender Keys keep group cost linear in devices for transport and constant for encryption.
Sender Keys keep group cost linear in devices for transport and constant for encryption.
v 1.0 · owner Platform Architecture · date 2026-08
v 1.0 · owner Platform Architecture · date 2026-08
Text is not SVG - cannot display

Sender Keys

  • One symmetric key per sender per group, distributed pairwise once
  • Encryption cost becomes constant instead of linear in group size
  • Transport cost stays linear in devices, which is the unavoidable part

Membership changes

  • A member leaving forces a sender-key rotation for everyone remaining
  • A member joining sees only messages sent after the join — no history back-fill
  • Community announcement channels rotate on every roster change, which bounds their size

Backpressure

  • Fanout workers are sharded by device id so one hot group cannot starve others
  • Announcement fanout is rate-shaped; delivery is eventual, not immediate
  • Broadcast lists are N independent 1:1 sends, so they carry no shared identity