trails/apps/journal/app
Ullrich Schäfer 7bcfa4cc76 feat(journal): async federation inbox via Fedify message queue
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>
2026-06-06 22:02:04 +02:00
..
components chore(ts): drop two more redundant casts 2026-05-26 01:02:49 +02:00
hooks Implement notifications + supporting fixes 2026-04-26 01:28:55 +02:00
jobs feat(journal): federation outbox + push delivery to remote followers 2026-06-06 15:32:52 +02:00
lib feat(journal): async federation inbox via Fedify message queue 2026-06-06 22:02:04 +02:00
routes feat(journal): federation outbox + push delivery to remote followers 2026-06-06 15:32:52 +02:00
entry.client.tsx Add legal pages, ToS acceptance, and alpha banner 2026-04-18 00:08:48 +02:00
entry.server.tsx Consolidate Sentry config into shared package; fix inconsistencies 2026-04-18 00:30:09 +02:00
root.tsx fix(journal): remove ineffective dynamic imports 2026-05-24 12:05:08 +02:00
routes.ts feat(journal): federation outbox + push delivery to remote followers 2026-06-06 15:32:52 +02:00