A sua app publicada agora continua no ar enquanto a republica
Quando republica uma app na Mythex, o seu site em produção continua a servir a versão anterior até o novo build estar pronto, e só então muda. Antes desta alteração, uma republicação tirava o site do ar durante todo o build — os visitantes viam «Esta app publicada está offline ou a ligação não foi encontrada» durante um minuto ou mais, e depois a mesma página voltava a funcionar ao recarregar. Corrigimos também duas outras formas como uma app ativa podia parecer, de forma errada, estar offline.
1. Republicar já não derruba o seu site
Por trás da cena, cada app publicada tem um registo que indica qual build servir. Uma republicação reutilizava esse registo e marcava-o como «em build» durante toda a operação — e a parte da nossa edge que encaminha os visitantes só servia registos marcados como «ativos». Por isso, cada republicação fazia o site desaparecer até o build terminar. Reproduzimos isto numa app de teste pequena: cerca de 50 segundos offline por republicação.
Agora, quando uma republicação começa numa app já ativa, o registo lembra-se de que existe um build anterior e continua a apontar para ele. A edge serve esse build anterior enquanto o novo é construído, e o ponteiro só passa para o novo build quando este tem sucesso. Se o novo build falhar, os seus visitantes nunca reparam — a versão antiga simplesmente continua no ar.
Uma primeira publicação, ou a republicação de uma app que estava em pausa ou despublicada, só fica ativa quando o build termina — não há versão anterior para mostrar.
2. Uma falha passageira já não parece «não encontrado»
O serviço à frente da sua app publicada pergunta à nossa API onde vive cada site. Antes, tratava qualquer resposta mal-sucedida — um erro momentâneo do servidor, uma ligação cortada — como «este site não existe», e mostrava a página offline. Um recarregamento um segundo depois funcionava, o que tornava tudo confuso.
Agora, só uma resposta real de «não encontrado» conta como não encontrado:
- Qualquer outra falha é repetida uma vez.
- Se continuar a falhar, a edge serve o site a partir da última resposta conhecida como boa, durante até uma hora.
- Só se nunca tiver recebido uma resposta é que mostra uma página de «temporariamente indisponível» — nunca «não encontrado».
Os domínios personalizados também consultam os nossos sistemas de produção e de staging em paralelo, para que um servidor de staging lento nunca retenha um domínio de produção.
3. Uma app em pausa diz que está em pausa
As apps publicadas funcionam com o seu saldo de créditos. Se ele acabar, a app fica em pausa até voltar a carregar — e regressa sozinha quando o fizer. Mas uma app em pausa costumava parecer exatamente uma app eliminada.
Agora, um visitante de uma app em pausa vê «Esta app está em pausa», com uma forma de o dono voltar a ativá-la, e a resposta nunca fica em cache, por isso a app fica acessível de novo no momento em que for retomada. Se uma app estiver indisponível por outro motivo, os visitantes veem «Esta app não está disponível» — sem que lhes seja dito porquê.
Porque isto importa
Uma app publicada é algo que partilhou: num link na bio, num cartão de visita, com os seus primeiros clientes. Deve comportar-se como um site real — manter-se no ar enquanto a melhora, sobreviver a uma falha momentânea, e ser honesta quando estiver em pausa.
Mais sobre publicação na documentação: como publicar e limites de alojamento. E a componente de infraestrutura da mesma ideia: como chegámos a zero 502 nos nossos deploys.