Lazy resolving for federated references

Pitch

Instead of fetching every single profile, all of its pinned posts, all replies to those pinned posts, and recursing through newly discovered profiles:

  • Fetch a profile when a status is received from it
  • Do not fetch its pinned posts until the profile is requested via the API
  • Do not fetch replies until the full context is requested via the API
  • Do not fetch mentioned profiles until the profile is requested via the API

Motivation

Less used space in the database, less immediate network requests being made. Only fetch what you need.

Description

This could be a toggle for something like “promiscuous mode” (current behavior is enabled by default). When disabled, it would behave as in the pitch above.

This would likely increase latency when loading those resources for the first time via the API, but I think that is an acceptable cost in exchange for not storing/caching a ton of unneeded information.

2 Likes