I spent several hours tracing in production (updating the code a dozen times with extra logging) to identify the actual path the lemmy_server code uses for outbound federation of votes to subscribed servers.
Major popular servers, Beehaw, Leemy.world, Lemmy.ml - have a large number of instance servers subscribing to their communities to get copies of every post/comment. Comment votes/likes are the most common activity, and it is proposed that during the PERFORMANCE CRISIS that outbound vote/like sharing be turned off by these overwhelmed servers.
pull request for draft:
EDIT: LEMMY_SKIP_FEDERATE_VOTES environment variable
I’m hoping the ‘subscribed servers’ is maybe only 300 or so? But I don’t know, the big sites haven’t been sharing information like that in my experience. They did say there were “millions” of outbound federation tasks. I expect the number of votes by user is higher than your number. They did put in code changes to detect servers they can’t reach and to stop attempting delivery.
I think a pull app that goes around to servers with content and uses the front-end API to grab 300 or more comments at a time, etc is the way to go. The client API is geared toward batch delivery. since lemmy.ml is so unstable for discussion, I opened a topic on GitHub: https://github.com/RocketDerp/lemmy_helper/discussions/4 - where I proposed some new /api/syncshare to get more raw data out of the PostgreSQL tables.