LinkedIn Professional Network · View 10 of 30 · 4 · Data
Decisions
- Only the top boundary is backed up. Everything below it is rebuilt from Kafka or the lake, which costs less than backing it up and restores faster
- A connection is written once, keyed by the ordered pair of members; each member's adjacency list in LIquid is derived from that row
- Credentials, applications and credits live in MySQL because they need multi-row transactions; everything else member-facing lives in Espresso
Retention
- Kafka keeps event topics for 7 days and keeps change topics compacted indefinitely
- The lake keeps data for years, governed by DataHub ownership and purpose tags
- Deleting a member purges the record stores and sends tombstones through the log, so every derived store forgets them too
Risks
- A derived store whose source topic was not compacted cannot actually be rebuilt, which makes it a backup gap. DataHub lineage is checked for every derived store
- Member deletion is expensive in the lake, where Iceberg partitions have to be rewritten