Pular para o conteúdo

Incidente · Sênior

VTEX 12/07/2023: circuit breakers que não fecham sozinhos

O próprio mecanismo de resiliência estendeu o incidente: o banco foi consertado às 21:15 UTC, mas os breakers ficaram abertos até as 23:03.

14 min de leitura · Incidente em 2023-07-12, durou · Fonte: VTEX · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

O próprio mecanismo de resiliência estendeu o incidente: o banco foi consertado às 21:15 UTC, mas os breakers ficaram abertos até as 23:03. O post-mortem público da VTEX é a fonte deste caso. Em 12 de julho de 2023, às 20:29 UTC, um dos sistemas de banco de dados replicados e de alta disponibilidade da empresa sofreu degradação severa de…

01 · CONTEXTO

Uma plataforma que depende de um banco replicado

O post-mortem público da VTEX é a fonte deste caso. Em 12 de julho de 2023, às 20:29 UTC, um dos sistemas de banco de dados replicados e de alta disponibilidade da empresa sofreu degradação severa de serviço e não se recuperou automaticamente. O efeito descrito foi de erros intermitentes e latência alta na experiência geral, com uma queda parcial da plataforma.

Fluxo de vendas, indexação de produtos e ambiente administrativo foram gravemente afetados.

  1. Lojistas e compradores chegam à plataforma por meio dos serviços.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataforma
    DBBanco replicado de alta disponibilidade
  2. Os serviços consultam um banco replicado e de alta disponibilidade, que é uma dependência compartilhada.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataforma
    DBBanco replicado de alta disponibilidade

02 · A LINHA DO TEMPO

Do banco degradado à recuperação

Segundo o post-mortem, às 20:29 UTC o banco degradou e não se recuperou automaticamente. Às 21:15 UTC o problema inicial foi remediado manualmente. Às 22:00 UTC a equipe de resposta ainda investigava os efeitos em cascata da falha e aplicava remediações manualmente. Às 23:03 UTC a VTEX validou que as ações de remediação tinham sido efetivas, com recuperação estável.

  1. Às 20:29 UTC o banco replicado sofre degradação severa de serviço e não se recupera automaticamente.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataforma
    DBBanco replicado de alta disponibilidadedegradado
  2. Para os usuários, o efeito é de erros intermitentes e latência alta, com queda parcial da plataforma.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataformaerros e latência
    DBBanco replicado de alta disponibilidade
  3. Às 21:15 UTC o problema inicial é remediado manualmente.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataforma
    DBBanco replicado de alta disponibilidaderemediado
  4. Vários circuit breakers de serviços abriram e não fecharam automaticamente depois que o problema inicial foi resolvido.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataformabreakers abertos
    DBBanco replicado de alta disponibilidade
  5. Às 22:00 UTC a equipe ainda investigava os efeitos em cascata e aplicava remediações manualmente.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataforma
    DBBanco replicado de alta disponibilidade
  6. Às 23:03 UTC a VTEX validou que as ações de remediação foram efetivas, com recuperação estável.

    Diagrama da arquitetura: Plataforma e banco replicado
    CLLojistas e compradores
    CPServiços da plataformarecuperação estável
    DBBanco replicado de alta disponibilidade

03 · O BREAKER

A proteção que não volta sozinha

Segundo o post-mortem, os circuit breakers existem para evitar a indisponibilidade completa e, como efeito colateral, um subconjunto da plataforma continuou a operar.

AspectoO que o post-mortem registra
PropósitoEvitar a indisponibilidade completa
Efeito colateralUm subconjunto da plataforma continuou a operar
Comportamento observadoVários breakers de serviços abriram e não fecharam automaticamente depois que o problema inicial foi resolvido
ConsequênciaO incidente se estendeu para alguns clientes
  1. O banco replicado degradado está na origem do impacto descrito no post-mortem.

    Diagrama da arquitetura: Funções impactadas pelo banco degradado
    CPFluxo de vendas
    CPIndexação de produtos
    CPAmbiente administrativo
    DBBanco replicado de alta disponibilidadedegradado
  2. O fluxo de vendas foi gravemente afetado.

    Diagrama da arquitetura: Funções impactadas pelo banco degradado
    CPFluxo de vendasgravemente afetado
    CPIndexação de produtos
    CPAmbiente administrativo
    DBBanco replicado de alta disponibilidade
  3. A indexação de produtos e o ambiente administrativo também foram gravemente afetados.

    Diagrama da arquitetura: Funções impactadas pelo banco degradado
    CPFluxo de vendas
    CPIndexação de produtosgravemente afetado
    CPAmbiente administrativogravemente afetado
    DBBanco replicado de alta disponibilidade

04 · AS AÇÕES

O que a VTEX se comprometeu a mudar

O post-mortem lista ações para evitar incidentes parecidos. Entre elas estão reavaliar o tamanho do domínio de falha associado ao sistema de banco replicado e de alta disponibilidade, investigar e corrigir a causa da degradação severa do serviço no sistema de banco, e investigar e corrigir o bug dos circuit breakers que não fecharam adequadamente depois que o problema do banco foi resolvido.

05 · NA ENTREVISTA

Perguntas para levar ao seu desenho

Ao propor circuit breakers, pergunte quem fecha o breaker: ele testa a dependência de forma automática e periódica, ou depende de uma ação manual? Pergunte também como você saberia, por monitoramento e alertas, que um breaker continua aberto depois que a dependência voltou. Por fim, pergunte quantos clientes e funções compartilham a mesma dependência, porque isso define o alcance de uma falha na disponibilidade.

Perguntas frequentes

O que é VTEX 12/07/2023: circuit breakers que não fecham sozinhos?

O próprio mecanismo de resiliência estendeu o incidente: o banco foi consertado às 21:15 UTC, mas os breakers ficaram abertos até as 23:03.

O que o design de VTEX 12/07/2023: circuit breakers que não fecham sozinhos cobre?

Ele está organizado nestas seções: Uma plataforma que depende de um banco replicado, Do banco degradado à recuperação, A proteção que não volta sozinha, O que a VTEX se comprometeu a mudar e Perguntas para levar ao seu desenho.

Quanto tempo leva VTEX 12/07/2023: circuit breakers que não fecham sozinhos e qual é o nível?

Leva cerca de 14 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.