Data Flow Architecture
Data flows through Bitcoinology in two directions: ingestion (podcast → beliefs → vector store) and query (user search → retrieval → synthesis → response).
Complete Data Flow
Belief Abstraction Hierarchy
Raw podcast audio is transformed through an 8-layer abstraction hierarchy:
10-Dimensional Positioning Vector
Each belief is scored on 10 dimensions:
| Dim | Name | Range | Description |
|---|---|---|---|
| 0 | Philosophical | 0.0–1.0 | Domain affinity |
| 1 | Moral | 0.0–1.0 | Domain affinity |
| 2 | Political | 0.0–1.0 | Domain affinity |
| 3 | Economic | 0.0–1.0 | Domain affinity |
| 4 | Scientific | 0.0–1.0 | Domain affinity |
| 5 | Academic consensus | -1.0 to +1.0 | Positioning |
| 6 | Public mainstream | -1.0 to +1.0 | Positioning |
| 7 | Institutional trust | -1.0 to +1.0 | Positioning |
| 8 | Epistemic rigor | -1.0 to +1.0 | Positioning |
| 9 | Overton window | -1.0 to +1.0 | Positioning |
Query-Time Data Flow
URL-Driven State Synchronization
The UI state syncs bidirectionally with URL parameters:
This enables:
- Deep linking — share a URL that opens a specific search + screen
- Browser back/forward — history stack maintained
- Thread context — returning users land on their active thread
Caching Strategy
| Layer | Cache | TTL | Max Size |
|---|---|---|---|
| Embeddings | LRU in-memory | Session | 500 entries |
| Graph data | HTTP cache header | 1 hour | — |
| Search history | localStorage | Persistent | 10 items |
| Thread state | Zustand + URL | Session | 20 history entries |
| Speaker aggregations | Supabase RPC cache | 1 hour | — |