Saltar al contenido principal

Lockers de operações

Um locker distribuído funciona como um “sinal de trânsito” para recursos compartilhados em sistemas distribuídos. Imagine que vários trabalhadores (workers) estão tentando acessar a mesma porta ao mesmo tempo: sem um controle, todos poderiam entrar juntos e causar bagunça. O locker garante que apenas um worker entre de cada vez, enquanto os outros esperam na fila.

Vantagens

  • Consistência de dados: evita que dois processos modifiquem o mesmo recurso simultaneamente.
  • Controle em múltiplas instâncias: funciona mesmo que sua aplicação rode em vários servidores.

Desvantagens

  • Complexidade extra: precisa lidar com filas, notificações e timeouts.
  • Dependência externa: exige um sistema como Redis para gerenciar locks distribuídos.

Exemplos práticos

CenárioExemplo de uso
Processamento de pedidosDois workers não processam o mesmo pedido ao mesmo tempo.
Tarefas em backgroundUma tarefa agendada só roda uma vez em um cluster.
Sistemas de reservasEvita que duas pessoas reservem a mesma vaga simultaneamente.
Controle de estoqueEvita que a quantidade de um produto seja reduzida duas vezes ao mesmo tempo.

💡Intuição visual

Exemplo de Lock

O locker funciona como um porteiro digital, garantindo que os recursos críticos sejam acessados de forma ordenada e segura, sem colisões, mesmo em ambientes distribuídos.