Conexão · Interrompida

Algo não carregou

Parte desta página não chegou até você. Recarregue para tentar novamente — se persistir, verifique sua conexão.

Pular para o conteúdo principal
Escritos · № 03

Todos posts

Notas longas sobre software, sistemas distribuídos e a arte de construir. Publicando uma por semana.

Todos os Posts
16 posts · Engineering
Engineering01

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.

7 de mai.
Engineering02

Log de Eventos como Fonte da Verdade Transforma Evolução de Schema em um Problema Eterno

Quando o log é a fonte da verdade, toda mudança de schema é permanente. Um passo a passo em Kotlin/Avro do rename que passou na verificação do Schema Registry e corrompeu silenciosamente todos os eventos antigos, mais os invariantes de Protobuf e Avro que agora mantenho fixados acima da minha mesa.

5 de mai.
Engineering03

Transformando Engenharia de Contexto de LLM em um Loop de Avaliação com DSPy

Notas de dois fins de semana cavando o DSPy. Parei de tratar prompts como a fonte da verdade e comecei a tratá-los como saída compilada de uma assinatura tipada, uma métrica e um otimizador. Aqui está o menor programa end-to-end que mantive, como o MIPROv2 de fato busca, e onde a abordagem cai por terra na prática.

3 de mai.
Engineering04

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.

26 de abr.
Engineering05

O Transactional Outbox Não É uma Fila

O transactional outbox é um ledger, não uma fila. Tratá-lo como fila é o que quebra o Postgres sob carga. Este post percorre os modos de falha específicos — autovacuum travando, drift do horizonte xmin, lag do replication slot, poison pills — e as regras operacionais que realmente o mantêm funcionando em produção.

17 de abr.
Engineering06

Virtual Threads Depois do JEP 491: O Gargalo Se Moveu

O JEP 491 removeu o problema de pinning do `synchronized` que mantinha as virtual threads fora da produção. A pergunta interessante agora não é se habilitar ou não — é qual gargalo aparece em seguida. Um guia de campo para serviços Spring Boot / Kotlin rodando em JDK 24+.

17 de abr.