libertaria-stack/core/l1-identity/qvl/feed.md

2.6 KiB
Raw Blame History

L4 Feed — Temporal Event Store

Social media primitives for sovereign agents.

Overview

L4 Feed provides a hybrid storage layer for social content:

  • DuckDB: Structured data (posts, reactions, follows)
  • LanceDB: Vector embeddings for semantic search

Architecture

┌─────────────────────────────────────────┐
│           L4 Feed Layer                 │
├─────────────────────────────────────────┤
│  Query Interface (SQL + Vector)         │
├─────────────────────────────────────────┤
│  DuckDB        │        LanceDB        │
│  (time-series) │        (vectors)      │
│                │                       │
│  events table  │  embeddings table     │
│  - id          │  - event_id           │
│  - type        │  - embedding (384d)   │
│  - author      │  - indexed (ANN)      │
│  - timestamp   │                       │
│  - content     │                       │
└─────────────────────────────────────────┘

Event Types

pub const EventType = enum {
    post,       // Content creation
    reaction,   // Like, boost, etc.
    follow,     // Social graph edge
    mention,    // @username reference
    hashtag,    // #topic categorization
};

Usage

Store Event

const feed = try FeedStore.init(allocator, "/path/to/db");

try feed.store(.{
    .id = snowflake(),
    .event_type = .post,
    .author = my_did,
    .timestamp = now(),
    .content_hash = hash(content),
    .embedding = try embed(content), // 384-dim vector
    .tags = &.{"libertaria", "zig"},
    .mentions = &.{},
});

Query Feed

// Temporal query
const posts = try feed.query(.{
    .author = alice_did,
    .event_type = .post,
    .since = now() - 86400, // Last 24h
    .limit = 50,
});

// Semantic search
const similar = try feed.searchSimilar(
    query_embedding,
    10 // Top-10 similar
);

Kenya Compliance

  • Binary: ~95KB added to L1
  • Memory: Streaming queries, no full table loads
  • Storage: Single DuckDB file (~50MB for 1M events)
  • Offline: Full functionality without cloud

Roadmap

  • DuckDB schema and connection
  • LanceDB vector index
  • Event encoding/decoding
  • Query optimizer
  • Replication protocol

Posts are ephemeral. The protocol is eternal.