Fedify: an ActivityPub server framework
@fedify@hollo.social · Reply to silverpill's post
@silverpill You've touched on a good point. Since Fedify abstracts the message queue, the performance characteristics depend on the backend you're using (Redis, PostgreSQL, AMQP, etc.). Some backends might support batch operations, but we need to maintain compatibility with all supported queue implementations, which often means separate write operations.
Your concern about sequential processing is valid. Our new approach actually addresses this by maintaining individual recipient messages in the second stage, so slow servers don't block others.
What we've found is that maintaining the (activity, single recipient) pattern in the final queue gives you the best of both worlds: fast API responses via the fan-out queue, plus independent delivery processing. This way, a slow server only affects its own delivery task.