Datos Logísticos & Automatización · Sete Lagoas Transportes LTDA

Evok Inteligencia Logística

Evok convierte el sistema de gestión de transporte de un operador de carga en una plataforma de analítica. Una flota de scrapers en Python opera el sistema de origen mediante Playwright, transmite los payloads extraídos por colas en Valkey hacia un controlador de ingesta en Go, y proyecciones CQRS los reconstruyen en los KPI, paneles e informes que la operación realmente usa.

En Producción
Resultados
API Go · Ingesta · Flota PythonServicios
Colas y pub/sub en ValkeyCoordinación
Identidad Kratos + RLS en PostgresAislamiento de Tenant
OpenTelemetry → GrafanaObservabilidad
Arquitectura
Cliente / Navegador connects to Borde Traefik via HTTPS · Cookie de Sesión. Borde Traefik connects to Query API. Query API connects to Valkey via Publica ciclo de vida · encola. Valkey connects to Orquestador Python. Orquestador Python connects to Workers de Scraping via LPush / BRPop de tareas. Workers de Scraping connects to TMS Logístico. Workers de Scraping connects to Controlador de Ingesta via Cola de ingesta de datos. Controlador de Ingesta connects to PostgreSQL + pgvector via Proyecciones CQRS.
Notas de Ingeniería

Los servicios en Go y la flota de scrapers en Python nunca se llaman directamente. Toda la coordinación pasa por Valkey: eventos de ciclo de vida por pub/sub, colas de trabajo por tenant consumidas con pop bloqueante, estado de tareas en hashes, y payloads extraídos enviados a una cola de ingesta que el controlador en Go consume.

El scraping está orquestado, no guionizado. Un orquestador se suscribe a eventos de ciclo de vida del tenant y de sincronización solicitada y reparte las tareas en una cola acotada a ese tenant, de modo que el atraso de un tenant no puede dejar sin recursos al de otro.

Las actualizaciones de estado de los workers se publican en un canal que el backend en Go escucha y retransmite como server-sent events, así una sincronización larga informa su progreso al navegador en vivo en lugar de ser consultada por polling.

Los registros crudos nunca se sirven directamente. Proyecciones CQRS los reconstruyen en los modelos analíticos detrás de los paneles de KPI, desempeño de vendedores y logística, con informes PDF y de auditoría generados desde esas mismas proyecciones.

El aislamiento de tenant recorre toda la profundidad del stack: Ory Kratos emite la sesión, Casbin evalúa política de rol y atributo, y el row-level security de PostgreSQL acota la consulta — siendo la ruta privilegiada del agente una excepción explícita y documentada, no un accidente.

La plataforma está instrumentada de extremo a extremo con OpenTelemetry hacia VictoriaMetrics y Grafana, con Traefik en el borde y cada secreto inyectado desde Infisical en el despliegue en vez de vivir en el archivo de compose.

Tecnologías Principales
GoPythonPlaywrightPostgreSQLpgvectorValkeyOry KratosCasbinOpenTelemetryReact