Group messages add complexity:
Small groups (< members): Send to each member individually. Manageable fanout.
Delivery tracking: Track per-member delivery status. Show "delivered to all" when complete.
Architecture:
- Group metadata in database
- Message sent once to server
- Server fans out to group members
- Each member's device decrypts independently (end-to-end encryption)
Optimization: Batch delivery updates. Don't send individual notifications when group message delivers.
Admin features: Add/remove members, change group settings, all persisted with group state.