DegenFeed Architecture π’
DegenFeed is a protocol-agnostic social aggregator: one backend, many decentralized networks, one feed.
ββββββββββββββ poll/webhook βββββββββββββββββββββββββ
β Farcaster βββββββββββββββββββββΆβ β
β Nostr βββββββββββββββββββββΆβ Ingestion Layer β
β Bluesky βββββββββββββββββββββΆβ (one adapter per β
β Lens βββββββββββββββββββββΆβ protocol) β
β ATProto βββββββββββββββββββββΆβ β
ββββββββββββββ βββββββββββββ¬ββββββββββββ
β normalize
βββββββββββββΌββββββββββββ
β Canonical Post Model β
β author Β· body Β· refs β
β network Β· ts Β· media β
βββββββββββββ¬ββββββββββββ
β
ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
β β β
βββββββββΌβββββββββ ββββββββββΌββββββββ βββββββββββΌβββββ ββββ
β Postgres β β Redis β β Meilisearch β
β (persistent) β β (feed cache, β β (full-text β
β β β rate limits) β β search index) β
ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββββ
Key design decisionsβ
- Adapters own protocol weirdness. Each network adapter translates to the canonical model at ingestion; downstream code never sees raw protocol envelopes.
- Fan-in, not fan-out. Posts are stored once, referenced by many feeds.
- Cross-posting is first-class β a single author action can publish to multiple networks through the canonical model (see Cross-Posting).
- Search is an index, not the source of truth. Meilisearch can be rebuilt from Postgres at any time.
Failure modesβ
| Failure | Behavior |
|---|---|
| One network relay down | Adapter backs off; other networks keep flowing |
| Redis down | Feeds served from Postgres (slower, still correct) |
| Meilisearch down | Search disabled; feeds unaffected |