I don’t know a ton about the internals of federated systems, it’s been on my todo list for a while but it keeps getting pushed down by other things. But I still like that the fediverse exists and I’d like to pitch in, even if it’s only a few bucks of processor time / month.

Are there compute tasks that could be offloaded to a network of volunteers? Monitoring tools that could be run from outside the system? Something else I’m not thinking of?

  • queerlilhayseed@piefed.blahaj.zoneOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 hours ago

    controlling the total throughput to make sure smaller servers don’t get hammered is tricky. I think it’s one of those things that I will need to prototype and see in action before I really get a feel for it, but my basic idea is that users would pick a “home” server for their service, and that server will tell all its client services how frequently to poll and report. the home server tries to maintain a baseline across all its clients, so if it wants 1 ping every 15 seconds, and it currently has 100 live clients, it’s instructions to each client would be “ping once every 25 minutes”, and the clients would have some some randomizer that chooses a time within the 25 minute interval to ping, giving the server a roughly even distribution of pings over the interval.

    server-to-server coordination would involve sharing their current number of live clients with other federated hosts, and setting frequency based on the total number of clients across all federated servers.

    For example, suppose A and B are federated servers, where A can handle a lot of traffic and B is just a tiny instance. A might have 10x more clients than B, but all of A’s clients will ping A and B, and send reports to both. But if B wants to turn down the traffic, they can request fewer checks from A, who will push that request out to all its clients.