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.
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.
