AI · Serverless
AronaChat
An AI chat application built around Cloudflare Workers, with explicit boundaries for state and cost.
Working entry Sample availability; cover studies and development stages are illustrative.
A conversation needs more than a model.
AronaChat is an AI chat application built around Cloudflare's serverless ecosystem. Workers provides the application backend, with D1, R2, and Durable Objects contributing persistence and state-management capabilities. The project explores model integration, conversation management, usage limits, and cost controls while keeping the application lightweight and its infrastructure responsibilities clear.
State has different lifetimes
A conversation has at least two clocks: the lifetime of a request and the lifetime of its history. Treating both as one kind of state makes recovery harder to explain.
One illustrative division gives D1 the queryable conversation records, R2 the larger stored objects, and Durable Objects the coordination that needs a single owner. The useful question is which component owns the transition, especially when a model request ends before the conversation does.
The pieces behind the conversation
- Application backend
- Cloudflare Workers
- Persistence & state
- D1 / R2 / Durable Objects
- Integration work
- AI models and conversation management
- Operational concerns
- Usage limits, cost controls, and clear failure states
Where the boundaries belong
Give state an owner
The sample architecture separates queryable records, larger stored objects, and coordinated live state. A clear owner for each kind of data is easier to maintain than treating every persistence service as interchangeable.
Put limits on the request path
Usage checks and budget decisions should happen before starting model work. This is an engineering direction for keeping limits understandable and preventing expensive requests from becoming an afterthought.
Keep model differences at the boundary
A model integration layer can translate provider-specific behavior into application-level states. The conversation interface should remain readable when a request is waiting, interrupted, or unavailable.
An example development path
Illustrative stages, from later explorations to foundations.
Usage & cost controls
Explore request limits, budget checks, and feedback that explains why a request cannot continue.
Conversation state
Sketch how durable records, stored objects, and live session coordination divide responsibilities.
Model connection
Define the Workers request flow and a model boundary that can evolve with the chat experience.