LinkedIn — Notes
Functional
- Profile (work history, education, skills).
- Connection graph (1st/2nd/3rd degree).
- Feed of activity (posts, articles, reactions).
- People search, jobs search.
- Messaging + InMail.
- Notifications.
Non-functional
- 1B users; ~300M MAU.
- p99 profile page < 300 ms.
- Multi-region active for reads.
Capacity
- ~50B notifications/day at peak.
- Feed traffic: 100M+ DAU × 30 feed loads.
Schema highlights
member(id, headline, location, skills[], experience[], education[])
connections(a_id, b_id, status, since)
posts(id, author, ts, body, media[], visibility)
jobs(id, company_id, title, location, skills[], desc)
- Bi-directional shards on connections (by
a and by b) for both-direction queries.
Trade-offs
- Graph queries (2nd-degree) = expensive joins; use precomputed degree counts + traversal limits.
- Recommendation quality = key product differentiator; large investment in ML.
- Recruiter Search has different latency vs free search; separate index.
Refs
- LinkedIn engineering blog (Espresso, Voldemort, Pinot, Helix, Kafka, Samza).
- Galene/Search papers.
- "LinkedIn's Economic Graph" talks.
- ByteByteGo "Design LinkedIn".