> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mov-eat.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Arquitectura del sistema

> Arquitectura general de Moveat y límites de responsabilidad entre servicios.

# Arquitectura del sistema

Moveat usa una separación simple de servicios:

* **Platform** es dueño de datos y reglas de negocio.
* **Agent** es dueño de la orquestación conversacional.
* **Client** es dueño de la interfaz.
* **Infra** es dueño del runtime, proxy, DB, Redis y observabilidad.

```mermaid theme={null}
graph LR
    Client[Web Client] --> Platform[Platform API]
    Agent[Agent] --> Platform
    Platform --> Postgres[(PostgreSQL)]
    Platform --> Redis[(Redis)]
    Agent --> Redis
    Agent --> WhatsApp[WhatsApp Cloud API]
    Agent --> LLM[LLM Provider]
    Caddy[Caddy] --> Platform
    Caddy --> Agent
    Caddy --> Grafana[Grafana]
```

## Boundary de Platform

Platform es la fuente de verdad. Es dueño de:

* Sesiones de auth.
* Usuarios.
* Profiles.
* Goals.
* Nutrition settings.
* Meal entries.
* Daily summaries.
* Weight logs.
* Workout logs.
* APIs internas para Agent.

## Boundary de Agent

Agent no es dueño de datos durables de negocio. Es dueño de:

* Webhooks de canales.
* Normalización de mensajes.
* Llamadas a LLM.
* Detección de intención.
* Clarificaciones.
* Estado temporal en Redis.
* Llamadas a APIs internas de Platform.

## Motivo del split

El split mantiene la complejidad conversacional fuera del backend de negocio y centraliza el estado oficial del producto en Platform.

## Deploy

Producción corre en un droplet de DigitalOcean con Docker Compose. Caddy maneja HTTPS y reverse proxy.

Servicios actuales:

* Platform.
* Agent.
* PostgreSQL.
* Redis.
* Caddy.
* Grafana.
* Loki.
* Alloy.
* Komodo.
