Notion — Notes
Functional
- Block-based pages with rich content.
- Inline databases with multiple views.
- Real-time multi-user editing.
- Comments, mentions, reminders.
- Offline support.
- AI / search.
Non-functional
- p99 sync < 1 s.
- Workspaces up to 10s of thousands of users.
- Offline editing must reconcile cleanly.
Trade-offs
- Block as universal primitive = expressive but verbose.
- Postgres at scale demands sharding (workspace).
- Tree with permissions inheritance: change at parent cascades.
Refs
- Notion engineering blog ("Sharding our Postgres", "Building Notion AI").
- ByteByteGo "Design Notion".