Autoretto.
← All posts
Infrastructure · September 6, 2026 · 3 min read · Autoretto Daily

Stateless but durable: why a cold start still knows everything

There is a moment at 3am when a new piece of music is supposed to go live. The serverless instance that runs that job may have been idle for hours. It could be a fresh container with no warm memory. Yet it acts like it has all the context it needs. It knows the owner's channel, the release history, the schedule, and the lessons learned from previous uploads. That is not magic. It is by design.

Autoretto separates state from process. The process is disposable. It can be killed and restarted at any time without losing anything. The state lives in a database, not in memory. Every run starts the same way: read the owner state, then act on it. This is the core of how we stay stateless and durable at the same time.

Owner state holds everything that matters for a release. Channel configuration lives there. So does the content calendar, the history of past uploads, and the results of quality and policy gates. Performance data from real views and engagement is stored as well. If a release is mid-flight, the current step is also in the state. Nothing important is left to chance or to a process that might disappear.

At the top of every run, the platform rehydrates that state into memory. Think of it as loading a saved game. The autopilot does not remember yesterday. It reads it. That is why a hand-started test run at noon and a scheduled run at 3am see exactly the same reality. The database is the single source of truth, and every run starts from that same truth.

Durability comes from write-through. Every change to state is committed to the database before the next action depends on it. If a step updates the schedule, that write happens first. If a render is marked as passed, the write happens before the next gate runs. We do not keep a scratch copy and hope to persist it later. No branch of the code relies on memory that is not also written through.

This design fits serverless infrastructure perfectly. A container can be recycled at any moment. There is no long-lived process to hold context. Instead, each invocation is a fresh function that starts from zero. Cold starts are not a correctness problem. They add a little latency while state is loaded. But the state is always current because the previous run wrote it through. There is no 'memory only' branch that loses data when a process dies.

Debugging becomes simpler too. We can look at the database and see exactly what a run saw at each step. The code is a pure function of stored state, the current time, and external signals. If a run misbehaves, we can replay the state and find the bug. That is the benefit of being stateless: every behavior is reproducible. And that is the benefit of being durable: the 3am autopilot release knows everything a hand-started one does, because both read the same written truth.