LinkedIn Professional Network · View 29 of 30 · 7 · Assurance
Decisions
- Blocks are checked first, in both directions. A blocked viewer gets a 404, so the block itself is not revealed
- Visibility is decided per field, not per profile: public, connections, network, or recruiters only
- Every recruiter and admin read of member data is logged
Performance
- The block list is cached in Couchbase; graph degree comes from LIquid in memory
- Decisions are cached per viewer and target for seconds
Risks
- Every new read path is a new place to forget the check. The policy is a library each Rest.li resource calls, and a test asserts that it does
- Derived stores (search, feed) apply privacy at read time, because precomputed data is older than the latest setting