Mastodon gives inbox deliveries a 10s read timeout; without a queue, Fedify runs inbox listeners AND outbound deliveries (the Accept we push back after a Follow) inside the inbound request. A slow or unreachable remote then blows the budget, the sender times out and its circuit breaker (Stoplight on Mastodon) cuts us off — observed live during the staging soak. InProcessMessageQueue + manuallyStartQueue: the queue consumer starts explicitly on first federation use (skipped under vitest so tests don't leak timers). In-process queueing is acceptable for the single-process journal: queued work lost on restart is recoverable (remotes retry Follows; activity push delivery is owned by our own pg-boss jobs). Revisit with a Postgres-backed MessageQueue if that changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| components | ||
| hooks | ||
| jobs | ||
| lib | ||
| routes | ||
| entry.client.tsx | ||
| entry.server.tsx | ||
| root.tsx | ||
| routes.ts | ||