# Treating “one day” as a system primitive

> Source: <https://dev.to/jones_chen_592558a62a5c44/treating-one-day-as-a-system-primitive-1eba>
> Published: 2026-09-13 02:46:48+00:00

For most AI apps, the unit of time is a request.

A user sends a message, the model responds, and the workflow ends. Cogweald is designed around a different primitive: one real day.

Each world can advance by at most one chapter per day. That sounds like a product rule, but it is also an important systems abstraction. It gives state changes a rhythm, makes costs predictable, and gives readers a reason to return at a known cadence.

It also creates a real engineering question: what happens when the cron job fires twice? How do we prevent one day from advancing twice? We use a database-level tick claim, turning the time window into a state transition that can be claimed and verified.

Time is not just a date label in the UI. Once it affects permissions, cost, scheduling, and consistency, it becomes a core product primitive.

What concept in your product is currently treated as a string, but should really be modeled as system state?
