Uma publicação pode ser gravada corretamente no banco e continuar ausente da página por alguns minutos. Persistência e cache são etapas diferentes: o banco confirma a escrita, enquanto cada camada de cache decide quando a leitura seguinte mostrará o dado novo. Para resolver sem desligar todo o cache, mapeie quais saídas dependem do post alterado.
Descreva o caminho dos dados
Em um site com blog, a mesma entrada pode aparecer na página inicial do blog, na rota do artigo, no RSS, no sitemap e na página do autor. Uma atualização no título afeta mais de um caminho. A exclusão também exige remover links de listagem e limpar páginas derivadas. Mantenha esse mapa perto do código que executa a mutação para que a lista de invalidação acompanhe a arquitetura real.
O App Router oferece revalidatePath para marcar uma rota como desatualizada e revalidateTag para invalidar dados associados a uma tag. Eles resolvem problemas diferentes. Uma tag representa um conjunto de leituras que usam os mesmos dados. Um path representa uma saída específica que precisa ser renderizada novamente. Use o mecanismo que corresponde à forma como o aplicativo carrega o conteúdo.
Persista antes de invalidar
A ordem normal é validar a entrada, gravar o post e a fonte Markdown, e só então solicitar revalidação. Se a invalidação ocorrer primeiro e a escrita falhar, uma visita poderá reconstruir a página com dados antigos. Se a gravação acontecer primeiro e a invalidação falhar, o conteúdo existe, mas a exibição pode demorar. Registre essa falha separadamente e ofereça uma forma segura de repetir a invalidação.
Quando a publicação também envia uma notificação a um mecanismo de busca, essa chamada é outro efeito externo. Ela não deve desfazer uma publicação já salva. Defina se a falha será registrada para repetição, entregue a uma fila ou apenas reportada. O leitor do blog deve continuar funcionando mesmo que o serviço de descoberta esteja indisponível.
Cuidado com rotas dinâmicas
Uma página com [slug] tem muitas variantes. Revalidar /blog atualiza a listagem, mas não necessariamente a página específica do artigo. Revalidar apenas /blog/meu-artigo não remove uma entrada antiga do RSS. O mesmo vale para rotas com idioma ou filtros. Use os caminhos canônicos que o aplicativo serve e verifique as rotas dependentes no código.
A semântica das APIs de cache evolui entre versões do Next.js. Confira a documentação correspondente à versão instalada antes de copiar exemplos de outra versão. Uma opção com nome parecido pode atuar em momento diferente ou exigir uma chamada que antes era implícita.
Teste observando uma nova requisição
Depois de publicar em ambiente de teste, abra a listagem, a página do artigo, o RSS e o sitemap em novas requisições. Verifique título, URL, data, resumo e situação do post. Repita depois de editar e excluir. Confirmar apenas o sucesso da resposta do CMS não prova que as rotas públicas foram atualizadas.
Confirme também o comportamento quando a mesma publicação é solicitada duas vezes. Repetir a revalidação deve ser seguro. Ela não deve gravar outro post nem notificar indefinidamente serviços externos. Separe nos logs o identificador da publicação, a tentativa de revalidação e o resultado da notificação.