Logistics Data & Automation · Sete Lagoas Transportes LTDA

Evok Logistics Intelligence

Evok turns a freight operator's transport management system into an analytics platform. A Python scraping fleet drives the source system under Playwright, streams extracted payloads through Valkey queues into a Go ingestion controller, and CQRS projections rebuild them into the KPIs, dashboards, and reports the operation actually runs on.

Production
Results
Go API · Ingestion · Python fleetServices
Valkey queues & pub/subCoordination
Kratos identity + Postgres RLSTenant Isolation
OpenTelemetry → GrafanaObservability
Architecture
Client / Browser connects to Traefik Edge via HTTPS · Session Cookie. Traefik Edge connects to Query API. Query API connects to Valkey via Publish lifecycle · enqueue. Valkey connects to Python Orchestrator. Python Orchestrator connects to Scraper Workers via LPush / BRPop tasks. Scraper Workers connects to Logistics TMS. Scraper Workers connects to Ingestion Controller via Data ingress queue. Ingestion Controller connects to PostgreSQL + pgvector via CQRS projections.
Engineering Notes

The Go services and the Python scraping fleet never call each other directly. They coordinate entirely through Valkey: lifecycle events over pub/sub, per-tenant job queues drained with a blocking pop, task state in hashes, and extracted payloads pushed to an ingress queue the Go controller consumes.

Scraping is orchestrated rather than scripted. An orchestrator subscribes to tenant lifecycle and sync-requested events and fans tasks into a queue scoped to that tenant, so one tenant's backlog cannot starve another's.

Worker status updates publish to a channel the Go backend subscribes to and relays onward as server-sent events, so a long-running sync reports progress to the browser live instead of being polled for.

Raw scraped records are never served directly. CQRS projections rebuild them into the analytics models behind the KPI, seller-performance, and logistics dashboards, with PDF and audit reporting generated from those same projections.

Tenant isolation runs the full depth of the stack: Ory Kratos issues the session, Casbin evaluates role and attribute policy, and PostgreSQL row-level security scopes the query — with the agent's privileged path an explicit, documented exception rather than an accident.

The platform is instrumented end to end with OpenTelemetry into VictoriaMetrics and Grafana, fronted by Traefik, with every secret injected from Infisical at deploy time rather than living in the compose file.

Core Technologies
GoPythonPlaywrightPostgreSQLpgvectorValkeyOry KratosCasbinOpenTelemetryReact