Por dentro do Authrim
Um banco de dados que cresce
Mais usuários estão chegando. É uma boa notícia, mas traz uma pergunta: por quanto tempo o banco de dados atual vai comportar os dados? O Authrim prepara novos destinos antes que sejam necessários, para que crescer não comece com um projeto de migração.
Adicionar espaço antes de mover dados
O Cloudflare D1, usado pelo Authrim, tem um limite por banco de dados: 500 MB no plano Free e 10 GB no Paid. Conforme o número de usuários e o volume de dados aumentam, será necessário outro local de armazenamento.
O Authrim foi projetado para distribuir contas entre vários bancos desde o início. Assim, chegar a esse limite não exige mover todas as contas existentes. Cada uma dessas unidades de armazenamento é chamada de shard.
Manter as contas existentes onde estão e adicionar destinos para as novas. Essa é a ideia central da expansão do armazenamento de contas.
Dados diferentes crescem em ritmos diferentes
O Authrim armazena separadamente as configurações do tenant, como clientes OAuth e políticas; as contas e os dados pessoais; e os índices que localizam uma conta pelo e-mail.
Mais usuários não significam que todos os bancos precisam crescer juntos. O armazenamento de contas e os índices de busca têm quantidades de registros e ritmos diferentes. A capacidade é adicionada onde faz falta.
Quantas contas ainda cabem?
Uma nova conta é atribuída a um dos shards disponíveis para seu tenant. A preferência é por shards saudáveis com menor proporção entre contas alocadas e a meta configurada.
O sinal observado não é o uso de disco, mas quantas contas ainda podem ser recebidas dentro da meta configurada. Com uma meta de 100.000 contas, por exemplo, uma margem de 20.000 ajuda a decidir quando preparar o próximo destino.
Quando sobra pouca margem nos shards disponíveis, uma reserva já preparada é atribuída. Isso vale tanto para shards compartilhados por vários tenants quanto para os exclusivos de um único tenant.
Armazenamento compartilhado
Armazenamento exclusivo
Armazenamento compartilhado e exclusivo
O que deixa de ser trabalho repetitivo
Depois de configurar o provisionamento automático, o operador não precisa criar um banco, preparar tabelas e conectar um novo destino a cada aumento de cadastros. Também não precisa elaborar um plano de migração das contas existentes a cada expansão.
O operador verifica se o provisionamento está avançando, se as falhas estão visíveis e se o uso e os custos seguem dentro do esperado. Problemas de permissão e limites dos serviços ainda exigem atenção. A preparação do próximo destino fica com o Authrim.
O espaço livre de hoje não conta toda a história
Com espaço para mais 20.000 contas, um serviço que recebe 100 novas contas por dia tem muito mais tempo para se preparar do que outro que recebe 10.000 por hora.
Por isso, o Authrim estima a capacidade futura com base nas alocações atuais e no ritmo recente de cadastros. A previsão cobre o armazenamento de contas e os índices de busca. Uma tarefa programada roda a cada minuto, e a previsão de contas também é atualizada após as alocações.
Os shards que já estão sendo criados entram na estimativa. O objetivo é evitar que processos que detectem a mesma falta de capacidade criem bancos adicionais desnecessariamente.
Da criação ao uso
Quando as reservas não bastam, o Authrim cria bancos D1 pela API de gerenciamento do Cloudflare. Ele cria as tabelas, configura o acesso dos Workers e distribui os novos locais de armazenamento. Um banco só passa a receber contas depois de concluir as verificações de leitura e escrita.
O provisionamento automático precisa estar ativado, com tokens de API separados para D1 e Workers. Quando a execução automática não está disponível, o operador continua o trabalho pela ferramenta de instalação.
O progresso é persistido durante a criação. Após uma falha temporária de conexão, a operação pode ser retomada a partir desse estado. Permissões ausentes ou limites de recursos exigem que o operador resolva a causa antes de continuar.
Se a preparação atrasar e acabarem os espaços para contas, novos cadastros podem precisar de outra tentativa. Preparar a capacidade com antecedência busca reduzir essa espera.
Quem opera decide quando mover os dados
Adicionar capacidade e mover dados existentes são operações diferentes. Ao transferir um tenant de um shard compartilhado para um exclusivo, por exemplo, é preciso copiar os dados existentes, além de preparar o novo destino.
O operador decide se a migração deve começar. Após a aprovação, o Authrim cuida da sincronização, da verificação e da troca para o novo armazenamento.
Atualmente, a mudança suportada é do armazenamento compartilhado para o exclusivo. O caminho de volta e a redistribuição automática e uniforme das contas existentes ainda não estão implementados.
Excluir um shard que deixou de ser usado também exige aprovação. O crescimento não dispara automaticamente a movimentação nem a exclusão dos dados existentes.
O que foi medido
Em um teste de julho de 2026 com 200.000 contas, Core usou cerca de 208 MB, PII cerca de 238 MB e Lookup cerca de 426 MB. Cada um ficou abaixo de 5% do limite de 10 GB por banco no plano Paid. O uso real depende dos atributos e índices armazenados.
A meta padrão é de 100.000 contas por shard. Isso deixa margem para preparar o próximo, em vez de preencher o banco até seu limite físico.
O Authrim ainda não chegou à versão 1.0, e a experiência de longo prazo em produção e em grande escala ainda está sendo construída. Medir o armazenamento de 200.000 contas de teste é diferente de operar um serviço usado diariamente por milhões de pessoas.
Crescer com menos planos de migração
Um serviço pequeno não precisa começar com uma infraestrutura grande. Pode usar poucos shards e adicionar destinos conforme os cadastros aumentam. O Authrim inclui a preparação e os procedimentos necessários para isso.
Quando os usuários começam a chegar, planejar uma mudança de banco não deveria ser a primeira tarefa da lista. Reduzir esse trabalho deixa mais tempo para desenvolver o próprio serviço.
Armazenamento medido em 30 de julho de 2026 com 200.000 contas de teste. MB usa unidades decimais. Os limites do D1 estão na documentação do Cloudflare.