Chris Collins

Project

AOEE: a social-graph cache

A TAO-inspired in-memory relationship cache for social-graph queries, with compressed posting lists and fast set operations for friend-of-friend queries and feeds.

Started 12 February 2026 · updated 18 May 2026 · repository

Software engineeringData and event platforms

AOEE (Attribute Object Enterprise Edition) is my take on the idea behind Facebook’s TAO: an in-memory cache of relationships that answers social-graph queries — followers, mutual friends, friend suggestions, feeds — in well under a millisecond.

What it does

  • Constant-time edge lookups and fast intersection and union for "mutual friends" queries.

  • Friend-of-friend (two-hop) queries with scoring for suggestions.

  • Sharding by consistent hashing for horizontal scale.

  • Compressed posting lists that pick an encoding automatically: a plain vector under 128 entries, delta-varint up to about 4,000, bit-packed blocks beyond that, and Roaring bitmaps for huge or dense lists.

How it is built

The server is Rust, serving gRPC; a Java client library and a Spring Boot proxy provide a REST API and dataset loading; and a React UI offers a graph explorer and edge manager. Each posting list combines an unsorted write buffer with compacted, sorted, encoded segments.

AOEE is the graph layer behind my enterprise social platform.

Updates

  1. AOEE: a TAO-style social graph cache in Rust Article

    How I built AOEE, an in-memory relationship cache for social-graph queries: posting lists borrowed from search engines, four adaptive encodings, set maths instead of joins, and friend-of-friend suggestions with a budget.