Dependencias Externas — Gastro
Cuadrante 04_EXPLANATION. Este documento explica de qué depende Gastro y por qué. No es la fuente canónica de variables, puertos ni contratos exactos: esa información vive en los
03_REFERENCEde cada sub-componente.
1. Principio de ownership
Gastro no es una app única. Es una vertical compuesta por cuatro superficies:
backend/: autoridad transaccional y multi-tenant.frontend/marketing-site/: funnel comercial y flujos de cuenta.frontend/admin-panel/: operación privada del negocio.frontend/public-menu/: carta pública porslug.
Cada superficie tiene dependencias distintas, pero el backend sigue siendo la pieza central: todos los frontends dependen de sus APIs o de sus side effects.
2. Dependencias críticas de infraestructura
PostgreSQL
Es la fuente de verdad de Gastro.
Dependen de PostgreSQL:
- tenants
- founders
- staff
- categorías
- productos
- historial de precios
- auditoría
- estado de onboarding
Razón arquitectónica:
- permite multi-tenancy fuerte con
tenant_id - soporta RLS con
app.current_tenant_id - sostiene constraints e índices parciales que el menú público necesita para latencia baja
Referencia exacta:
- backend/docs/03_REFERENCE/environment.md
- backend/docs/04_EXPLANATION/relational-model.md
- backend/docs/04_EXPLANATION/database-design.md
Redis
Redis es acelerador, no fuente de verdad.
Se usa para:
- caché del menú público
- resolución
slug -> tenant_id - rate limiting
- idempotencia
- soporte auxiliar para sesión y hardening
Razón arquitectónica:
- evita round-trips repetidos al backend para lectura pública
- protege endpoints sensibles
- desacopla features defensivas de la base transaccional
Referencia exacta:
Storage de imágenes: Cloudflare R2 / MinIO
Gastro no sirve imágenes binarias desde PostgreSQL.
Se usa storage externo para:
- logos
- portadas
- imágenes de productos
Razón arquitectónica:
- mantener la base transaccional ligera
- permitir pipeline de procesamiento y compresión
- exponer URLs públicas estables a los frontends
En local puede usarse MinIO; en despliegues reales la integración nominal es R2.
Referencia exacta:
3. Dependencias de producto y servicios externos
Gemini
Gemini se usa en ai_onboarding para extraer menú y perfil desde imágenes o PDFs.
Qué implica:
- el onboarding IA no es completamente autónomo
- la calidad del flujo depende de un proveedor externo de IA
- la persistencia final sigue siendo responsabilidad del backend Gastro
Referencia:
Resend
Resend soporta:
- recuperación de contraseña
- verificación de email
- comunicaciones básicas de cuenta
Qué implica:
- los flujos de cuenta del
marketing-sitey del backend dependen de un proveedor de email - sin esta dependencia, la app puede seguir existiendo, pero algunos journeys quedan degradados
Referencia:
- backend/docs/03_REFERENCE/environment.md
- frontend/marketing-site/docs/04_EXPLANATION/funnel-architecture.md
Foveo
La fidelización visible hoy en el admin-panel no es todavía un bounded context nativo de Gastro.
Se integra con Foveo para:
- membresías
- puntos
- recompensas
- kiosco del cajero
Qué implica:
- loyalty hoy es una capacidad parcialmente externa al core de Gastro
- la promesa comercial existe dentro de la vertical, pero parte de la ejecución depende del ecosistema TimeLiber
Referencia:
- frontend/admin-panel/docs/04_EXPLANATION/fidelizacion-module.md
- apps/gastro/.agent/context/tasks_loyalty_sprint.md
4. Dependencias entre sub-componentes internos
marketing-site depende de:
- backend Gastro para
signup,forgot-password,reset,verify public-menupara el demo público enlazado desde el funneladmin-panelcomo destino del login privado
admin-panel depende de:
- backend Gastro para auth, perfil, menú, media, usuarios y platform
- Foveo para loyalty actual
public-menucomo destino de QR, preview y validación operativa
public-menu depende de:
- backend Gastro para
GET /api/v1/public/menu/{slug} - theming y contenido suministrado por tenant
La relación correcta es:
marketing-site ─┐
admin-panel ────┼──▶ backend
public-menu ────┘
admin-panel ───▶ Foveo
backend ───────▶ Gemini / Resend / R2
5. Regla documental importante
Este documento no debe duplicar:
- tablas exactas de variables de entorno
- defaults de puertos
- contratos de API
- rutas detalladas
Toda esa información pertenece a 03_REFERENCE y debe apuntar al origen canónico correspondiente.