As instâncias do Mastodon podem trocar publicações usando dois métodos distintos: federação direta e pub-sub baseado em relé. A federação direta envia conteúdo de uma instância para outra apenas quando alguém segue um usuário no servidor remoto. Um relé, por outro lado, atua como um hub central que transmite publicações para todas as instâncias inscritas, independentemente de quem segue quem. Este artigo explica as diferenças técnicas entre os dois modelos, seus casos de uso e as compensações envolvidas. Você aprenderá como os relés afetam a carga do servidor, o alcance do conteúdo e o controle de moderação.
Principais Conclusões: Relé do Mastodon vs Federação Direta
- Federação direta: As publicações são transferidas apenas quando um usuário local segue um usuário remoto, mantendo o tráfego baixo e o controle alto.
- Modelo pub-sub com relé: Um servidor de relé coleta publicações de instâncias publicadoras e as envia para todas as instâncias inscritas, expandindo o alcance às custas de maior largura de banda.
- Diferenças de moderação: A federação direta permite que cada instância bloqueie ou limite usuários remotos específicos; os relés transmitem todo o conteúdo das instâncias participantes, reduzindo a moderação granular.
Como a Federação do Mastodon Funciona em Nível Técnico
O Mastodon usa o protocolo ActivityPub para trocar atividades entre instâncias. Uma atividade pode ser uma publicação, um impulsionamento, um seguir ou uma exclusão. Cada instância executa seu próprio servidor ActivityPub que envia e recebe essas atividades via HTTPS. O protocolo define dois padrões de entrega: entrega direta por push e entrega por relé por pull através de uma caixa de entrada compartilhada.
Federação Direta: Entrega Um a Um
Na federação direta, a Instância A envia uma nova publicação para a Instância B apenas se pelo menos um usuário na Instância B seguir o autor na Instância A. A publicação é entregue na caixa de entrada compartilhada da Instância B, que então a distribui para as timelines iniciais dos seguidores. Esse modelo é eficiente porque transfere apenas conteúdo que tem demanda local ativa. Cada instância mantém uma lista de usuários remotos que seus usuários seguem e armazena em cache suas publicações recentes. A desvantagem é que uma instância não pode descobrir conteúdo de um usuário remoto a menos que alguém na instância já siga esse usuário.
Modelo Pub-Sub com Relé: Transmissão de Muitos para Muitos
Um relé é um ator ActivityPub especial que fica entre as instâncias. Uma instância pode se inscrever em um relé, tornando-se assinante, e também publicar suas publicações públicas no relé. Quando uma instância publicadora envia uma nova publicação para o relé, o relé encaminha essa publicação para todas as instâncias inscritas. Isso acontece independentemente de algum usuário na instância assinante seguir o autor original. O relé atua como um multiplicador de força: uma publicação enviada ao relé alcança dezenas ou centenas de instâncias em segundos.
O relé usa o endpoint de caixa de entrada compartilhada de cada instância assinante, o mesmo endpoint usado para entrega direta. A diferença é que o relé envia todas as publicações de todos os publicadores para todos os assinantes, enquanto a federação direta envia apenas publicações de usuários que são seguidos na instância de destino.
Diferenças em Alcance, Desempenho e Controle
A escolha entre federação direta e pub-sub com relé afeta três áreas principais: até onde o conteúdo se espalha, quanta carga no servidor cada instância carrega e quanto controle os administradores têm sobre o conteúdo recebido.
Alcance do Conteúdo
A federação direta limita o alcance ao grafo de seguidores. Uma publicação de uma conta pequena em uma instância pequena pode nunca sair dessa instância se ninguém em outras instâncias seguir a conta. Os relés resolvem isso transmitindo todas as publicações públicas para todos os assinantes. Uma publicação de um novo usuário em uma instância conectada a um relé pode aparecer em dezenas de timelines remotas imediatamente, mesmo que o usuário tenha zero seguidores em outros lugares. Isso torna os relés úteis para comunidades focadas em tópicos, como um relé para uma linguagem de programação ou um hobby, onde os usuários querem ver todas as publicações sobre esse tópico de muitas instâncias.
Carga do Servidor e Largura de Banda
A federação direta escala linearmente com o número de usuários remotos que os usuários locais seguem. Se uma instância tem 100 usuários, cada um seguindo 200 contas remotas, a instância recebe publicações de até 20.000 contas remotas. Um relé, no entanto, envia todas as publicações de todos os publicadores. Se o relé tem 50 publicadores e cada um publica 100 publicações por dia, o relé envia 5.000 publicações por dia para cada assinante. Para um assinante com 10 relés, isso se torna 50.000 publicações por dia, muitas das quais podem ser irrelevantes. O próprio relé também arca com o custo de processar e encaminhar todas essas publicações.
Granularidade da Moderação
Com a federação direta, um administrador pode bloquear ou limitar um usuário remoto específico que publique conteúdo problemático. O bloqueio se aplica apenas a esse usuário, não a toda a instância remota. Com um relé, o administrador deve aceitar todo o conteúdo do relé ou cancelar a inscrição completamente. Não há como bloquear publicadores individuais de um relé, a menos que o próprio relé forneça uma interface de moderação, o que poucos fazem. Alguns relés permitem que administradores definam uma lista de bloqueio de domínios, mas isso bloqueia toda a instância publicadora, não contas individuais.
Quando Usar um Relé vs Federação Direta
Instâncias pequenas com poucos usuários geralmente se beneficiam de relés porque não têm base de seguidores suficiente para descobrir conteúdo apenas pela federação direta. Um relé traz um fluxo constante de publicações públicas, preenchendo as timelines locais com conteúdo do fediverso mais amplo. Instâncias grandes com milhares de usuários geralmente não precisam de relés porque seus usuários já seguem contas remotas suficientes para gerar um feed rico. Adicionar um relé a uma instância grande pode sobrecarregar o servidor com publicações duplicadas ou irrelevantes.
Relés específicos para tópicos funcionam bem para comunidades de nicho. Por exemplo, um relé para fotógrafos pode agregar publicações com hashtags de fotografia de muitas instâncias. Usuários em instâncias assinantes veem todas essas publicações sem precisar seguir cada fotógrafo individualmente. O operador do relé deve manter o servidor de relé e moderá-lo se necessário.
Equívocos e Limitações Comuns
Relés Aumentam Mais a Carga do Servidor do que a Federação Direta
Isso geralmente é verdade, mas depende do tamanho da instância. Para uma instância com menos de 50 usuários ativos, um relé pode adicionar menos carga do que seguir manualmente milhares de contas remotas. Para uma instância grande, a carga do relé pode exceder a carga da federação direta por um fator de dez. Os administradores devem monitorar o uso de CPU e memória após adicionar um relé e removê-lo se o desempenho degradar.
Relés Ignoram Configurações de Privacidade de Seguidores
Os relés encaminham apenas publicações públicas. Publicações não listadas, apenas para seguidores e mensagens diretas nunca são enviadas para um relé. O servidor Mastodon verifica a visibilidade da publicação antes de entregá-la à caixa de entrada compartilhada do relé. Publicações privadas permanecem privadas independentemente das inscrições no relé.
A Federação Direta Pode Ser Mais Lenta para Descoberta de Novo Conteúdo
Sem um relé, uma instância só pode descobrir conteúdo de usuários que seus membros já seguem. Conteúdo viral ou em tendência de fora desse grafo pode nunca aparecer. Os relés resolvem isso trazendo conteúdo de muitas instâncias, mas a compensação é menor relevância e mais ruído.
Federação Direta vs Pub-Sub com Relé: Comparação de Recursos
| Item | Federação Direta | Pub-Sub com Relé |
|---|---|---|
| Gatilho de entrega | Usuário local segue um usuário remoto | Publicador envia publicação para o relé |
| Escopo do conteúdo | Apenas publicações de usuários seguidos | Todas as publicações públicas de todos os publicadores |
| Carga do servidor | Proporcional ao número de seguidores | Proporcional ao número de publicadores e relés |
| Controle de moderação | Bloquear usuários remotos individuais | Bloquear relé inteiro ou domínio |
| Descoberta de conteúdo | Limitada ao grafo de seguidores | Ampla, inclui novas contas |
| Privacidade | Publicações públicas e privadas respeitadas | Apenas publicações públicas encaminhadas |
| Complexidade de configuração | Automática, sem configuração necessária | Requer URL do relé e inscrição |
A federação direta é o modo padrão para todas as instâncias do Mastodon. Os relés são um complemento opcional que um administrador pode ativar no painel de administração da instância, em Administração > Relés. A URL do relé deve ser fornecida pelo operador do relé, e a instância deve se inscrever nele. Uma vez inscrita, a instância envia suas publicações públicas para o relé e recebe publicações de outros assinantes.
Os relés não afetam publicações privadas ou não listadas. Também não afetam impulsionamentos ou respostas, a menos que essas atividades sejam públicas. O relé simplesmente encaminha as atividades públicas que recebe de seus publicadores.
Se você administra uma instância pequena e deseja ver conteúdo mais diverso sem seguir manualmente centenas de contas, inscrever-se em um ou dois relés específicos para tópicos pode ajudar. Monitore os recursos do servidor após adicionar um relé. Se o servidor ficar lento, remova o relé e confie apenas na federação direta. Para instâncias grandes, a federação direta é quase sempre suficiente e mais segura para o desempenho.