#sistemas-distribuidos
Every post I've written about sistemas-distribuidos — 7 articles, across Distributed Systems, Backend, Engineering. Most recent: “Relógios Lógicos Híbridos: Fazendo o Last-Write-Wins Significar a Escrita Mais Recente.”
Posts tagged #sistemas-distribuidos
Relógios Lógicos Híbridos: Fazendo o Last-Write-Wins Significar a Escrita Mais Recente
O last-write-wins baseado em relógio de parede mantém a escrita do relógio mais rápido, e não a do evento mais recente — e descarta silenciosamente dados causalmente mais novos sob desvio (skew). Estas são minhas notas reconstruindo um Relógio Lógico Híbrido em Go: um timestamp de 64 bits, monotônico e causal, por que seu contador permanece limitado, e quanto isso custa em reinícios por incerteza no estilo do CockroachDB.
Actor-per-Entity vs Bloqueio Otimista no Postgres: Um Comparativo em Reserva de Assentos
Executei a mesma carga de trabalho de reserva de assentos com hot key de duas formas: Postgres com coluna de versão e retries, e um único actor por assento. O design com actor não escalou melhor — ele moveu o problema difícil do controle de concorrência para a corretude de roteamento e rebalanceamento, e essa troca foi a mais fácil de raciocinar sob hot keys.
Execução Durável Não É Sobre Agentes — É Sobre Workflows de Backend com Replay
Cheguei aos runtimes de execução durável pela hype dos agentes, mas a restrição que surpreende todo mundo é o determinismo no replay. Estas são minhas anotações trabalhando uma reconciliação de pagamentos de seis passos como um workflow do Restate em TypeScript — a linha que quebrou o replay, o modelo mental que consertou, e os trade-offs que vêm com o padrão.
AckWait É um Contrato: Como um Default de 30 Segundos Derrubou Meu Consumer JetStream
Perdi uma noite com um pull consumer NATS JetStream que dobrou seu trabalho em produção. A causa foram três linhas de ConsumerConfig que eu nunca escrevi. Estas são minhas anotações sobre o que o AckWait realmente conta, por que MaxDeliver = -1 é a armadilha silenciosa e o contrato Go de 70 linhas que agora envio em todo consumer JetStream.
O que `dbos ontime` realmente está perguntando: construindo um cron distribuído com leases do etcd em Go
Uma busca 0-click por `dbos ontime` apareceu no meu Search Console na semana passada. Quem digitou isso não está perguntando sobre DBOS — está perguntando como rodar um job a cada minuto, exatamente uma vez, em uma frota de máquinas. Pelas minhas próprias anotações, um lease do etcd, o pacote `concurrency.Election` e um fencing token cobrem esse caso em menos de 100 linhas de Go, sem precisar trazer um workflow engine.
DBOS vs Temporal: Quando o Postgres É Suficiente para Execução Durável de Workflows
O DBOS reutiliza o Postgres como camada de durabilidade para workflows, enquanto o Temporal roda um cluster dedicado. A escolha certa depende do tamanho do time, da forma do workload e de onde você quer que seu orçamento operacional vá. Este é um critério prático para escolher entre eles.
Arquitetura Baseada em Células Não É de Graça: O Que Slack, DoorDash e Roblox Realmente Pagaram Por Ela
Arquitetura baseada em células contém o raio de impacto, mas não é gratuita. Um olhar sobre o que Slack, DoorDash e Roblox realmente pagaram por células em produção — e um checklist para os padrões mais baratos de isolamento de falhas que a maioria dos times deveria considerar primeiro.