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
46 posts
AI01

Previsão agora é uma chamada de biblioteca: anotações de quem rodou o TimesFM 2.5

O TimesFM 2.5 do Google encolheu para 200M de parâmetros, liderou o GIFT-Eval em zero-shot no lançamento e agora está por trás do AI.FORECAST do BigQuery — então rodei o modelo eu mesmo em séries com formato de telemetria. Em zero-shot, ele superou o seasonal-naive em 15% com 0,6s por previsão em CPU. Depois adicionei um salto de nível de 60% uma semana antes da previsão e a baseline de uma linha venceu por 1,5x — enquanto a banda de quantis do modelo silenciosamente alargava 2,6x. Estas são minhas anotações sobre o que chamou atenção, o que observar antes de confiar nele e os casos de uso em que eu realmente o colocaria em produção.

26 de ago.
AI02

O Handoff É a Unidade de Design: Delegando para Agentes Sem Perder o Sistema

Quando agentes escrevem uma parcela significativa do código, meu output deixa de ser código digitado — passa a ser decisões de delegação. Estas são minhas anotações sobre a disciplina humana que faz isso funcionar: dimensionar cada handoff ao review que consigo pagar, o briefing que entrego no lugar de tarefas grandes, e os quatro hábitos que me mantêm conectado a um sistema no qual não estou mais digitando — das ironias de Bainbridge em 1983 a um resultado da METR que desde então inverteu o próprio sinal.

23 de ago.
Engineering03

Sua Fila Não Vai Esvaziar: A Aritmética da Recuperação de Backlog

Uma frota de consumidores aparentemente saudável pode ficar sentada sobre um backlog de 3 milhões de mensagens que nunca diminui. Estas são minhas anotações sobre a aritmética por trás disso: excedente = capacidade − chegada, drenagem = backlog ÷ excedente, e por que uma frota dimensionada para o regime estacionário tem capacidade de recuperação zero. Construí um pequeno simulador em TypeScript para observar a amplificação de retries estacionar uma frota corretamente dimensionada em uma falha metaestável, e deduzi quando descartar (shedding) supera drenar.

19 de ago.
Distributed Systems04

Cache Stampedes São um Problema de Capacidade, Não de Locking

Um lock distribuído em cada cache miss é a correção que a maioria dos posts recorre; nos meus próprios testes é a que transforma um soluço de 400 ms num colapso de fila. Estas são minhas notas tratando stampedes como um orçamento de capacidade upstream — por que 10% de jitter no TTL é um número de cargo cult, o que o XFetch realmente compra, e o critério que uso para decidir quando um lock vale a pena.

16 de ago.
Engineering05

Backpressure é um contrato que todo chamador precisa honrar, não uma configuração

Uma fila limitada em um serviço não faz nada se o chamador acima dele continuar empurrando. Estas são minhas notas sobre backpressure como um contrato ponta a ponta: o que o chamado deve, o que todo chamador deve de volta, e por que o incidente de amplificação de retries do Azure OpenAI é a cara de uma cláusula quebrada em hiperescala.

12 de ago.
Distributed Systems06

Quando uma Zona Cai, Não Deixe seu Cluster se Rebalancear até a Morte

Uma zona de disponibilidade cai e o cluster sobrevive à indisponibilidade — e então se machuca tentando se curar. Estas são minhas anotações da leitura do artigo da Uber sobre OpenSearch resiliente a zonas confrontado com a documentação de allocation awareness: por que o reflexo de re-replicação é o verdadeiro perigo, e como declarar todos os domínios de falha antecipadamente faz um cluster degradar para um amarelo estável em vez de uma tempestade de rebalanceamento.

9 de ago.
Engineering07

O Bug Que Não Compilou: Portando um Erro de Reordenação para o Hydro

Plantei um bug de ordem de chegada em uma agregação fan-in escrita à mão em Rust, reproduzi uma subcontagem de 51% com um shuffle com semente e então portei a mesma lógica para o Hydro 0.17-alpha. O merge não ordenado se recusou a compilar meu fold não comutativo — estas são minhas anotações sobre o que essa garantia é, o que o manual_proof! apenas atesta e quando vale a pena pagar os custos de emenda.

5 de ago.
Engineering08

Arquitetura como Código com Structurizr DSL: Um Workspace C4 que Tanto o Revisor Quanto o Agente Conseguem Ler

Comitei um workspace Structurizr DSL ao lado de um serviço de billing em Kotlin/Spring e plugei o ArchUnit no Gradle, de modo que o CI quebra no instante em que o código diverge do desenho C4. Aqui está o workspace.dsl, o teste que o sustenta e o que mudou quando um agente de código passou a ler os dois arquivos em vez de adivinhar a partir dos pacotes.

2 de ago.
Databases09

As Três Fases de Movimentação de Dados Online, Lidas Como Três Invariantes

Todo diagrama de migração online que vi se parece com o mesmo — três setas entre duas caixas — e pula a parte que importa: para que cada fase realmente serve. Estas são minhas anotações depois de reler os escritos da Stripe sobre DocDB junto com a documentação de cutover do gh-ost e do Vitess, destilados em três invariantes que posso plotar em gráficos e usar como portões de decisão.

29 de jul.
Engineering10

Engenharia Antes da Inferência: A Pergunta Que a Zero Token Architecture Está Realmente Fazendo

Ultimamente eu venho ouvindo uma frase que teria sido absurda três anos atrás: "não consigo fazer agora — fiquei sem tokens". Estas são minhas anotações depois de investigar a Zero Token Architecture — a ideia que Kelsey Hightower levou de um post descartável a uma keynote na PlatformCon — e o princípio que quero construir em cima dela: toda chamada de IA é uma decisão de arquitetura, e os custos que mais importam nunca foram os tokens.

26 de jul.