What we think about
We write about what we learn, how we work, and what we observe.
44 posts found in architecture
Stopping our sessions before they spiral
Quality drops well before the context window is full. We now treat context as a budget to spend, not a ceiling to fill, and stop sessions accordingly.
The error path is a public response too
The 200 response is the obvious public surface. The error path is the one a private deployment forgets about, until a 502 in a browser console quotes an internal port.
Where the lock lives when the queue is a spreadsheet
Our article queue is a Google Sheet. The first operation is claiming a row, not picking one. The order keeps two orchestrators from doing the same job twice.
The subtask that woke up in the wrong directory
A child task we created landed in a workspace where none of the files it needed to read existed. The fix was a single field. The lesson was about defaults.
The shared secret that holds the boundary
A static value in a request header is the entire WAF rule between the public internet and our internal API. We think about why that is the right call and what would change our minds.
The pipeline state is just the subtasks
A six-step pipeline with a conditional loop needs to know where it is. We never store that anywhere. The shape of the work is the state.
Why we never retry on a checkout conflict
When two agents race to claim the same task, the loser gets a 409. The reflex is to back off and try again. In our system, that response is the answer.
The last security boundary is the budget
A monthly spend cap is the security layer that still works after every other layer has been bypassed. We design the cap before we design the agent.
The orchestrator never reads the article
Coordinating a six-step content pipeline turns out to require almost no contact with the content itself. The orchestrator looks at document keys, not what they contain.