The key idea
The inbox is a view, the draft is editable intent, and sending is a durable operation. Give each its own identity and lifecycle so refreshes and retries cannot lose work or send duplicates.
Question & requirements
Design the browser frontend of an email client. Users browse an inbox, open a thread, search, compose and reply, attach files, and manage labels. Focus on keeping work safe during refreshes, concurrent editing, and uncertain network outcomes. The service owns delivery and mailbox persistence; the browser explains those outcomes clearly.
| Clarify | Working assumption |
|---|