TG

PWA offline, idempotência e limpeza local

Consolidei avanços em PWA offline, sync, idempotência, limpeza de dados locais e documentação técnica do projeto cliente.

Um dia grande no projeto cliente (NDA), com muitas frentes paralelas convergindo para a mesma pergunta: como deixar uma aplicação offline-first confiável o suficiente para uso real.

Foram muitas sessões em workspaces diferentes, mas o trabalho se agrupou em poucos temas.

Projeto cliente (NDA)

Offline, sync e idempotência

O eixo principal foi fortalecer o contrato entre frontend, backend, IndexedDB e fila offline. Revisei a idempotência de cadastros, a chave usada pelo frontend, o retry de operações pendentes e a relação entre dados locais e dados confirmados pelo servidor.

Também avancei na decisão de manter uma migration consolidada enquanto ainda não há carga real em produção. Nesse momento, faz mais sentido reduzir ruído de histórico e garantir que o estado inicial do banco esteja claro.

PWA e experiência mobile

Outra parte forte do dia foi o PWA. O app ganhou manifest mais rico, instalação guiada, wake lock, badging e ajustes de instalação em plataformas diferentes. Também revisei o header fixo no mobile, o comportamento do app quando instalado e pontos de lentidão percebidos durante uso como PWA.

A limpeza de dados locais entrou como ferramenta de suporte: um botão em Configurações para apagar IndexedDB quando o ambiente local fica inconsistente ou quando um teste precisa começar limpo.

Backend e domínio

No backend, consolidei logging com Pino, revisão de mocks de teste, idempotência e tratamento de dados sensíveis em logs. Também continuei separando conceitos que estavam misturados, como número sequencial de relatório e ordem de serviço digitada.

tgmarinho-ai-website

Revisei o post sobre idempotência em APIs, sistemas distribuídos e fluxos offline-first. O texto ficou mais preso ao problema real: retry não é o único risco, porque o usuário, a fila offline ou um webhook também podem tentar repetir uma operação já processada.

O dia foi sobre tirar ambiguidade: no banco, na fila, no PWA e no texto que explica por que isso importa.