Skip to content

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".