From 2a7e5fb3f742b27a08b5d5de4814cd4f6c7cd44a Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 18 Dec 2025 15:42:47 +0100 Subject: [PATCH] Skip followers synchronization for accounts with 25k followers or more (#37302) --- app/workers/activitypub/distribution_worker.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/workers/activitypub/distribution_worker.rb b/app/workers/activitypub/distribution_worker.rb index 575e110257..125278fa51 100644 --- a/app/workers/activitypub/distribution_worker.rb +++ b/app/workers/activitypub/distribution_worker.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true class ActivityPub::DistributionWorker < ActivityPub::RawDistributionWorker + # Skip followers synchronization for accounts with a large number of followers, + # as this is expensive and people with very large amounts of followers + # necessarily have less control over them to begin with + MAX_FOLLOWERS_FOR_SYNCHRONIZATION = 25_000 + # Distribute a new status or an edit of a status to all the places # where the status is supposed to go or where it was interacted with def perform(status_id) @@ -27,6 +32,6 @@ class ActivityPub::DistributionWorker < ActivityPub::RawDistributionWorker end def options - { 'synchronize_followers' => @status.private_visibility? } + { 'synchronize_followers' => @status.private_visibility? && @account.followers_count < MAX_FOLLOWERS_FOR_SYNCHRONIZATION } end end