[{"data":1,"prerenderedAt":725},["ShallowReactive",2],{"blog-page-1":3},{"articles":4,"total":292,"totalPages":250},[5,185,424],{"_path":6,"_dir":7,"_draft":8,"_partial":8,"_locale":9,"title":10,"description":11,"date":12,"tags":13,"author":16,"authorType":17,"authorUrl":18,"cover":19,"readingTime":22,"body":23,"_type":179,"_id":180,"_source":181,"_file":182,"_stem":183,"_extension":184},"\u002Fblog\u002Fcomo-garantir-lgpd-e-privacidade-em-ia-para-pmes","blog",false,"","IA privada para PMEs: onde seus dados realmente ficam?","Isolamento, permissões e retenção: as decisões de arquitetura que antecedem a conexão dos documentos da empresa a um modelo de linguagem.","2026-10-26",[14,15],"IA privada","Governança","Solluzi","Organization","\u002F#responsavel",{"src":20,"alt":21},"\u002Fimages\u002Fblog\u002Fia-privada.png","Diagrama de documentos corporativos protegidos por uma camada de acesso e uma rede privada.",4,{"type":24,"children":25,"toc":170},"root",[26,34,41,46,51,57,70,95,101,106,111,117,122,127,133,138,148,154],{"type":27,"tag":28,"props":29,"children":30},"element","p",{},[31],{"type":32,"value":33},"text","Uma base de documentos corporativos concentra contratos, informações comerciais e, muitas vezes, dados pessoais. Antes de conectá-la a uma aplicação de IA, é preciso saber quem pode consultar cada documento, por quanto tempo ele será mantido e quais serviços recebem seu conteúdo.",{"type":27,"tag":35,"props":36,"children":38},"h2",{"id":37},"comece-pelo-fluxo-de-dados",[39],{"type":32,"value":40},"Comece pelo fluxo de dados",{"type":27,"tag":28,"props":42,"children":43},{},[44],{"type":32,"value":45},"Desenhe o caminho completo: entrada do arquivo, extração do texto, geração de embeddings, armazenamento, recuperação e resposta. Cada etapa pode ter um fornecedor, uma credencial e uma política de retenção diferente.",{"type":27,"tag":28,"props":47,"children":48},{},[49],{"type":32,"value":50},"Uma instalação privada não resolve essas decisões automaticamente. Um servidor isolado ainda pode expor informações por logs, backups, permissões incorretas ou chamadas a serviços externos.",{"type":27,"tag":35,"props":52,"children":54},{"id":53},"permissões-antes-da-busca",[55],{"type":32,"value":56},"Permissões antes da busca",{"type":27,"tag":28,"props":58,"children":59},{},[60,62,68],{"type":32,"value":61},"Em uma arquitetura RAG, a consulta recupera trechos de documentos para apoiar uma resposta. O filtro de acesso deve ocorrer ",{"type":27,"tag":63,"props":64,"children":65},"strong",{},[66],{"type":32,"value":67},"antes de os trechos serem enviados ao modelo",{"type":32,"value":69},". Pedir no prompt que o modelo ignore documentos confidenciais não substitui autorização na aplicação.",{"type":27,"tag":71,"props":72,"children":73},"ul",{},[74,80,85,90],{"type":27,"tag":75,"props":76,"children":77},"li",{},[78],{"type":32,"value":79},"Identifique o usuário e a organização em cada requisição.",{"type":27,"tag":75,"props":81,"children":82},{},[83],{"type":32,"value":84},"Aplique permissões também aos trechos indexados e aos metadados.",{"type":27,"tag":75,"props":86,"children":87},{},[88],{"type":32,"value":89},"Teste tentativas de consulta entre usuários e organizações diferentes.",{"type":27,"tag":75,"props":91,"children":92},{},[93],{"type":32,"value":94},"Revogue o acesso no índice quando a permissão do documento mudar.",{"type":27,"tag":35,"props":96,"children":98},{"id":97},"retenção-também-inclui-os-índices",[99],{"type":32,"value":100},"Retenção também inclui os índices",{"type":27,"tag":28,"props":102,"children":103},{},[104],{"type":32,"value":105},"Excluir o PDF original não garante a exclusão de suas cópias. Texto extraído, embeddings, caches, histórico de conversas e backups precisam de um ciclo de vida explícito.",{"type":27,"tag":28,"props":107,"children":108},{},[109],{"type":32,"value":110},"Registre somente o necessário para operar e investigar incidentes. Evite gravar o conteúdo completo de prompts e respostas por padrão. Credenciais e dados pessoais não devem aparecer em mensagens de erro.",{"type":27,"tag":35,"props":112,"children":114},{"id":113},"respostas-com-evidência-e-limites",[115],{"type":32,"value":116},"Respostas com evidência e limites",{"type":27,"tag":28,"props":118,"children":119},{},[120],{"type":32,"value":121},"Busca híbrida, combinando recuperação textual e vetorial, pode melhorar a localização de conteúdo. Ela não elimina respostas incorretas. Mostre as fontes utilizadas, avalie perguntas representativas e permita que o sistema informe que não encontrou evidência suficiente.",{"type":27,"tag":28,"props":123,"children":124},{},[125],{"type":32,"value":126},"Para documentos sensíveis, mantenha revisão humana nas decisões relevantes. Meça a qualidade da recuperação separadamente da qualidade da resposta.",{"type":27,"tag":35,"props":128,"children":130},{"id":129},"uma-verificação-inicial",[131],{"type":32,"value":132},"Uma verificação inicial",{"type":27,"tag":28,"props":134,"children":135},{},[136],{"type":32,"value":137},"Antes de operar com dados reais, valide o inventário de dados, os controles de acesso, a criptografia em trânsito, a política dos fornecedores e o procedimento de exclusão. A definição da base legal e das obrigações aplicáveis deve ser feita com os responsáveis por privacidade e assessoria jurídica.",{"type":27,"tag":28,"props":139,"children":140},{},[141,146],{"type":27,"tag":63,"props":142,"children":143},{},[144],{"type":32,"value":145},"Este é um exemplo editorial de arquitetura, não um parecer jurídico.",{"type":32,"value":147}," Conformidade depende do contexto e dos processos da organização, além da tecnologia.",{"type":27,"tag":35,"props":149,"children":151},{"id":150},"referência",[152],{"type":32,"value":153},"Referência",{"type":27,"tag":28,"props":155,"children":156},{},[157,159,168],{"type":32,"value":158},"A ANPD disponibiliza um ",{"type":27,"tag":160,"props":161,"children":165},"a",{"href":162,"rel":163},"https:\u002F\u002Fwww.gov.br\u002Fanpd\u002Fpt-br\u002Fassuntos\u002Fnoticias\u002Fanpd-publica-guia-de-seguranca-para-agentes-de-tratamento-de-pequeno-porte",[164],"nofollow",[166],{"type":32,"value":167},"guia de segurança da informação para agentes de tratamento de pequeno porte",{"type":32,"value":169},", com orientações para a proteção de dados pessoais.",{"title":9,"searchDepth":171,"depth":171,"links":172},2,[173,174,175,176,177,178],{"id":37,"depth":171,"text":40},{"id":53,"depth":171,"text":56},{"id":97,"depth":171,"text":100},{"id":113,"depth":171,"text":116},{"id":129,"depth":171,"text":132},{"id":150,"depth":171,"text":153},"markdown","content:blog:como-garantir-lgpd-e-privacidade-em-ia-para-pmes.md","content","blog\u002Fcomo-garantir-lgpd-e-privacidade-em-ia-para-pmes.md","blog\u002Fcomo-garantir-lgpd-e-privacidade-em-ia-para-pmes","md",{"_path":186,"_dir":7,"_draft":8,"_partial":8,"_locale":9,"title":187,"description":188,"date":189,"tags":190,"author":16,"authorType":17,"authorUrl":18,"cover":193,"readingTime":22,"body":196,"_type":179,"_id":421,"_source":181,"_file":422,"_stem":423,"_extension":184},"\u002Fblog\u002Fcomo-reduzir-custos-operacionais-com-agentes-no-whatsapp","Agentes no WhatsApp: automatize o fluxo, preserve o controle","Como delimitar tarefas, integrar sistemas e medir o custo por atendimento sem delegar decisões críticas a um modelo.","2026-10-12",[191,192],"Automação","Agentes",{"src":194,"alt":195},"\u002Fimages\u002Fblog\u002Fagentes-operacao.png","Fluxo de automação entre uma conversa, um agente com autorização e um sistema ERP.",{"type":24,"children":197,"toc":414},[198,203,208,214,219,224,230,235,332,337,343,348,376,382,387,392,398,403,408],{"type":27,"tag":28,"props":199,"children":200},{},[201],{"type":32,"value":202},"Consultar um pedido ou obter a segunda via de uma cobrança costuma exigir navegação por vários sistemas. São bons candidatos à automação quando o processo é claro e a identidade do solicitante pode ser verificada.",{"type":27,"tag":28,"props":204,"children":205},{},[206],{"type":32,"value":207},"O objetivo é reduzir trabalho repetido com rastreabilidade. Comece por um fluxo delimitado antes de tentar automatizar todo o atendimento.",{"type":27,"tag":35,"props":209,"children":211},{"id":210},"separe-conversa-e-execução",[212],{"type":32,"value":213},"Separe conversa e execução",{"type":27,"tag":28,"props":215,"children":216},{},[217],{"type":32,"value":218},"O modelo pode ajudar a identificar a intenção e formular uma resposta. A autorização de acesso e as regras de negócio devem ser aplicadas pelo serviço que executa a ação.",{"type":27,"tag":28,"props":220,"children":221},{},[222],{"type":32,"value":223},"Uma consulta ao ERP precisa respeitar o vínculo entre cliente e pedido. Um número de telefone sozinho pode não ser evidência suficiente para liberar informações sensíveis.",{"type":27,"tag":35,"props":225,"children":227},{"id":226},"desenhe-ferramentas-pequenas",[228],{"type":32,"value":229},"Desenhe ferramentas pequenas",{"type":27,"tag":28,"props":231,"children":232},{},[233],{"type":32,"value":234},"Em vez de conceder acesso amplo ao banco, exponha operações específicas. Por exemplo, consultar o status de um pedido já vinculado ao cliente autenticado.",{"type":27,"tag":236,"props":237,"children":241},"pre",{"className":238,"code":239,"language":240,"meta":9,"style":9},"language-typescript shiki shiki-themes github-dark","interface OrderStatusRequest {\n  authenticatedCustomerId: string\n  orderId: string\n  correlationId: string\n}\n","typescript",[242],{"type":27,"tag":243,"props":244,"children":245},"code",{"__ignoreMap":9},[246,270,290,307,323],{"type":27,"tag":247,"props":248,"children":251},"span",{"class":249,"line":250},"line",1,[252,258,264],{"type":27,"tag":247,"props":253,"children":255},{"style":254},"--shiki-default:#F97583",[256],{"type":32,"value":257},"interface",{"type":27,"tag":247,"props":259,"children":261},{"style":260},"--shiki-default:#B392F0",[262],{"type":32,"value":263}," OrderStatusRequest",{"type":27,"tag":247,"props":265,"children":267},{"style":266},"--shiki-default:#E1E4E8",[268],{"type":32,"value":269}," {\n",{"type":27,"tag":247,"props":271,"children":272},{"class":249,"line":171},[273,279,284],{"type":27,"tag":247,"props":274,"children":276},{"style":275},"--shiki-default:#FFAB70",[277],{"type":32,"value":278},"  authenticatedCustomerId",{"type":27,"tag":247,"props":280,"children":281},{"style":254},[282],{"type":32,"value":283},":",{"type":27,"tag":247,"props":285,"children":287},{"style":286},"--shiki-default:#79B8FF",[288],{"type":32,"value":289}," string\n",{"type":27,"tag":247,"props":291,"children":293},{"class":249,"line":292},3,[294,299,303],{"type":27,"tag":247,"props":295,"children":296},{"style":275},[297],{"type":32,"value":298},"  orderId",{"type":27,"tag":247,"props":300,"children":301},{"style":254},[302],{"type":32,"value":283},{"type":27,"tag":247,"props":304,"children":305},{"style":286},[306],{"type":32,"value":289},{"type":27,"tag":247,"props":308,"children":309},{"class":249,"line":22},[310,315,319],{"type":27,"tag":247,"props":311,"children":312},{"style":275},[313],{"type":32,"value":314},"  correlationId",{"type":27,"tag":247,"props":316,"children":317},{"style":254},[318],{"type":32,"value":283},{"type":27,"tag":247,"props":320,"children":321},{"style":286},[322],{"type":32,"value":289},{"type":27,"tag":247,"props":324,"children":326},{"class":249,"line":325},5,[327],{"type":27,"tag":247,"props":328,"children":329},{"style":266},[330],{"type":32,"value":331},"}\n",{"type":27,"tag":28,"props":333,"children":334},{},[335],{"type":32,"value":336},"O identificador do cliente deve vir da sessão validada pelo servidor, nunca da escolha do modelo. Registre a ação e o resultado com o mínimo de dados necessário.",{"type":27,"tag":35,"props":338,"children":340},{"id":339},"defina-limites-de-autonomia",[341],{"type":32,"value":342},"Defina limites de autonomia",{"type":27,"tag":28,"props":344,"children":345},{},[346],{"type":32,"value":347},"Consultar o horário de atendimento tem um risco diferente de alterar dados cadastrais ou aprovar um pagamento. Use aprovação humana para ações críticas e ofereça uma transferência clara para uma pessoa.",{"type":27,"tag":71,"props":349,"children":350},{},[351,356,361,366,371],{"type":27,"tag":75,"props":352,"children":353},{},[354],{"type":32,"value":355},"Limite o número de chamadas por conversa.",{"type":27,"tag":75,"props":357,"children":358},{},[359],{"type":32,"value":360},"Aplique prazos de execução e tentativas máximas.",{"type":27,"tag":75,"props":362,"children":363},{},[364],{"type":32,"value":365},"Use idempotência em operações que alteram o estado.",{"type":27,"tag":75,"props":367,"children":368},{},[369],{"type":32,"value":370},"Trate a indisponibilidade do ERP sem inventar uma resposta.",{"type":27,"tag":75,"props":372,"children":373},{},[374],{"type":32,"value":375},"Preserve o histórico necessário para o atendente continuar o caso.",{"type":27,"tag":35,"props":377,"children":379},{"id":378},"meça-o-resultado-completo",[380],{"type":32,"value":381},"Meça o resultado completo",{"type":27,"tag":28,"props":383,"children":384},{},[385],{"type":32,"value":386},"Acompanhe o tempo até a resolução, as transferências, as correções e o custo por tarefa concluída. Contar somente mensagens respondidas pode esconder retrabalho.",{"type":27,"tag":28,"props":388,"children":389},{},[390],{"type":32,"value":391},"Inclua na conta o canal oficial do WhatsApp, o provedor de mensagens, o uso do modelo e a infraestrutura. Compare um piloto com a rotina anterior usando o mesmo tipo de demanda.",{"type":27,"tag":35,"props":393,"children":395},{"id":394},"comece-com-uma-hipótese-verificável",[396],{"type":32,"value":397},"Comece com uma hipótese verificável",{"type":27,"tag":28,"props":399,"children":400},{},[401],{"type":32,"value":402},"Selecione um fluxo frequente, estável e de baixo risco. Defina os critérios de sucesso antes do piloto, avalie conversas reais com os responsáveis pelo processo e amplie o escopo somente quando houver evidência de qualidade.",{"type":27,"tag":28,"props":404,"children":405},{},[406],{"type":32,"value":407},"Uma integração útil entrega uma tarefa concluída e auditável. A conversa é apenas a interface.",{"type":27,"tag":409,"props":410,"children":411},"style",{},[412],{"type":32,"value":413},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":9,"searchDepth":171,"depth":171,"links":415},[416,417,418,419,420],{"id":210,"depth":171,"text":213},{"id":226,"depth":171,"text":229},{"id":339,"depth":171,"text":342},{"id":378,"depth":171,"text":381},{"id":394,"depth":171,"text":397},"content:blog:como-reduzir-custos-operacionais-com-agentes-no-whatsapp.md","blog\u002Fcomo-reduzir-custos-operacionais-com-agentes-no-whatsapp.md","blog\u002Fcomo-reduzir-custos-operacionais-com-agentes-no-whatsapp",{"_path":425,"_dir":7,"_draft":8,"_partial":8,"_locale":9,"title":426,"description":427,"date":428,"tags":429,"author":16,"authorType":17,"authorUrl":18,"cover":432,"readingTime":325,"body":435,"_type":179,"_id":722,"_source":181,"_file":723,"_stem":724,"_extension":184},"\u002Fblog\u002Fpostgresql-em-alta-disponibilidade-patroni-vs-gerenciados","PostgreSQL: Patroni ou banco gerenciado?","Uma comparação de responsabilidade operacional, recuperação e custo total para escolher uma arquitetura de alta disponibilidade.","2026-10-19",[430,431],"PostgreSQL","SRE",{"src":433,"alt":434},"\u002Fimages\u002Fblog\u002Fpostgresql-ha.png","Diagrama de três servidores PostgreSQL conectados, com um nó primário e duas réplicas.",{"type":24,"children":436,"toc":715},[437,442,448,467,472,478,483,488,493,526,531,537,542,547,652,658,663,668,674,711],{"type":27,"tag":28,"props":438,"children":439},{},[440],{"type":32,"value":441},"Escolher entre PostgreSQL com Patroni e um serviço gerenciado exige mais do que comparar o preço mensal das máquinas. A decisão envolve plantão, testes de recuperação, atualizações e o custo de uma interrupção.",{"type":27,"tag":35,"props":443,"children":445},{"id":444},"defina-o-que-a-operação-precisa-recuperar",[446],{"type":32,"value":447},"Defina o que a operação precisa recuperar",{"type":27,"tag":28,"props":449,"children":450},{},[451,453,458,460,465],{"type":32,"value":452},"Dois objetivos orientam o desenho: ",{"type":27,"tag":63,"props":454,"children":455},{},[456],{"type":32,"value":457},"RPO",{"type":32,"value":459},", a perda de dados tolerável, e ",{"type":27,"tag":63,"props":461,"children":462},{},[463],{"type":32,"value":464},"RTO",{"type":32,"value":466},", o tempo aceitável para recuperar o serviço. Eles precisam refletir processos reais do negócio e ser validados em testes.",{"type":27,"tag":28,"props":468,"children":469},{},[470],{"type":32,"value":471},"Uma réplica não substitui backup. Exclusões acidentais e alterações incorretas podem ser replicadas rapidamente. Mantenha cópias independentes e um procedimento testado de recuperação para um ponto no tempo.",{"type":27,"tag":35,"props":473,"children":475},{"id":474},"o-que-o-patroni-assume",[476],{"type":32,"value":477},"O que o Patroni assume",{"type":27,"tag":28,"props":479,"children":480},{},[481],{"type":32,"value":482},"Patroni coordena o papel dos nós PostgreSQL usando um mecanismo de consenso externo. O desenho também precisa considerar a disponibilidade desse mecanismo, o encaminhamento das conexões e a prevenção de duas instâncias primárias concorrentes.",{"type":27,"tag":28,"props":484,"children":485},{},[486],{"type":32,"value":487},"HAProxy pode encaminhar conexões de escrita de acordo com a verificação de papel dos nós. A aplicação precisa tratar reconexões e decidir como repetir transações com segurança.",{"type":27,"tag":28,"props":489,"children":490},{},[491],{"type":32,"value":492},"Este comando é um exemplo de inspeção de um cluster já configurado:",{"type":27,"tag":236,"props":494,"children":498},{"className":495,"code":496,"language":497,"meta":9,"style":9},"language-bash shiki shiki-themes github-dark","patronictl -c \u002Fetc\u002Fpatroni\u002Fpatroni.yml list\n","bash",[499],{"type":27,"tag":243,"props":500,"children":501},{"__ignoreMap":9},[502],{"type":27,"tag":247,"props":503,"children":504},{"class":249,"line":250},[505,510,515,521],{"type":27,"tag":247,"props":506,"children":507},{"style":260},[508],{"type":32,"value":509},"patronictl",{"type":27,"tag":247,"props":511,"children":512},{"style":286},[513],{"type":32,"value":514}," -c",{"type":27,"tag":247,"props":516,"children":518},{"style":517},"--shiki-default:#9ECBFF",[519],{"type":32,"value":520}," \u002Fetc\u002Fpatroni\u002Fpatroni.yml",{"type":27,"tag":247,"props":522,"children":523},{"style":517},[524],{"type":32,"value":525}," list\n",{"type":27,"tag":28,"props":527,"children":528},{},[529],{"type":32,"value":530},"Ele não instala nem valida o cluster. O resultado deve ser combinado com métricas de replicação, testes da aplicação e verificação dos backups.",{"type":27,"tag":35,"props":532,"children":534},{"id":533},"o-que-um-serviço-gerenciado-assume",[535],{"type":32,"value":536},"O que um serviço gerenciado assume",{"type":27,"tag":28,"props":538,"children":539},{},[540],{"type":32,"value":541},"Um serviço gerenciado pode assumir partes de atualização, backup e failover. O escopo varia por produto e plano. Leia as condições de recuperação, exportação, manutenção e custos de armazenamento e tráfego.",{"type":27,"tag":28,"props":543,"children":544},{},[545],{"type":32,"value":546},"A equipe continua responsável por modelagem, permissões, consultas, conexões e validação da recuperação do negócio.",{"type":27,"tag":548,"props":549,"children":550},"table",{},[551,575],{"type":27,"tag":552,"props":553,"children":554},"thead",{},[555],{"type":27,"tag":556,"props":557,"children":558},"tr",{},[559,565,570],{"type":27,"tag":560,"props":561,"children":562},"th",{},[563],{"type":32,"value":564},"Critério",{"type":27,"tag":560,"props":566,"children":567},{},[568],{"type":32,"value":569},"PostgreSQL com Patroni",{"type":27,"tag":560,"props":571,"children":572},{},[573],{"type":32,"value":574},"Serviço gerenciado",{"type":27,"tag":576,"props":577,"children":578},"tbody",{},[579,598,616,634],{"type":27,"tag":556,"props":580,"children":581},{},[582,588,593],{"type":27,"tag":583,"props":584,"children":585},"td",{},[586],{"type":32,"value":587},"Controle da plataforma",{"type":27,"tag":583,"props":589,"children":590},{},[591],{"type":32,"value":592},"Amplo, com responsabilidade técnica",{"type":27,"tag":583,"props":594,"children":595},{},[596],{"type":32,"value":597},"Limitado às opções do serviço",{"type":27,"tag":556,"props":599,"children":600},{},[601,606,611],{"type":27,"tag":583,"props":602,"children":603},{},[604],{"type":32,"value":605},"Atualizações",{"type":27,"tag":583,"props":607,"children":608},{},[609],{"type":32,"value":610},"Planejadas e executadas pela operação",{"type":27,"tag":583,"props":612,"children":613},{},[614],{"type":32,"value":615},"Conforme as políticas do fornecedor",{"type":27,"tag":556,"props":617,"children":618},{},[619,624,629],{"type":27,"tag":583,"props":620,"children":621},{},[622],{"type":32,"value":623},"Custo total",{"type":27,"tag":583,"props":625,"children":626},{},[627],{"type":32,"value":628},"Infraestrutura, equipe e suporte",{"type":27,"tag":583,"props":630,"children":631},{},[632],{"type":32,"value":633},"Serviço, consumo e operação residual",{"type":27,"tag":556,"props":635,"children":636},{},[637,642,647],{"type":27,"tag":583,"props":638,"children":639},{},[640],{"type":32,"value":641},"Recuperação",{"type":27,"tag":583,"props":643,"children":644},{},[645],{"type":32,"value":646},"Precisa de projeto e ensaios",{"type":27,"tag":583,"props":648,"children":649},{},[650],{"type":32,"value":651},"Precisa de validação do plano contratado",{"type":27,"tag":35,"props":653,"children":655},{"id":654},"escolha-pelo-custo-de-operar",[656],{"type":32,"value":657},"Escolha pelo custo de operar",{"type":27,"tag":28,"props":659,"children":660},{},[661],{"type":32,"value":662},"Um ambiente próprio pode fazer sentido quando existe capacidade operacional, necessidade de controle ou restrições de dados. Um serviço gerenciado pode reduzir o trabalho de plataforma quando suas limitações são aceitáveis.",{"type":27,"tag":28,"props":664,"children":665},{},[666],{"type":32,"value":667},"Antes de decidir, simule a perda de um nó, a falha de rede e uma restauração completa. A arquitetura só entrega continuidade quando a aplicação e a equipe sabem responder à falha.",{"type":27,"tag":35,"props":669,"children":671},{"id":670},"referências",[672],{"type":32,"value":673},"Referências",{"type":27,"tag":71,"props":675,"children":676},{},[677,689,700],{"type":27,"tag":75,"props":678,"children":679},{},[680,687],{"type":27,"tag":160,"props":681,"children":684},{"href":682,"rel":683},"https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002F17\u002Fwarm-standby.html",[164],[685],{"type":32,"value":686},"PostgreSQL: replicação e servidores standby",{"type":32,"value":688},".",{"type":27,"tag":75,"props":690,"children":691},{},[692,699],{"type":27,"tag":160,"props":693,"children":696},{"href":694,"rel":695},"https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002F17\u002Fcontinuous-archiving.html",[164],[697],{"type":32,"value":698},"PostgreSQL: arquivamento contínuo e recuperação para um ponto no tempo",{"type":32,"value":688},{"type":27,"tag":75,"props":701,"children":702},{},[703,710],{"type":27,"tag":160,"props":704,"children":707},{"href":705,"rel":706},"https:\u002F\u002Fgithub.com\u002Fpatroni\u002Fpatroni",[164],[708],{"type":32,"value":709},"Patroni: projeto e documentação oficial",{"type":32,"value":688},{"type":27,"tag":409,"props":712,"children":713},{},[714],{"type":32,"value":413},{"title":9,"searchDepth":171,"depth":171,"links":716},[717,718,719,720,721],{"id":444,"depth":171,"text":447},{"id":474,"depth":171,"text":477},{"id":533,"depth":171,"text":536},{"id":654,"depth":171,"text":657},{"id":670,"depth":171,"text":673},"content:blog:postgresql-em-alta-disponibilidade-patroni-vs-gerenciados.md","blog\u002Fpostgresql-em-alta-disponibilidade-patroni-vs-gerenciados.md","blog\u002Fpostgresql-em-alta-disponibilidade-patroni-vs-gerenciados",1793741324405]