VPP-Core is an MVP that demonstrates:
- high-concurrency IoT telemetry ingestion in Go
- event-driven processing with Kafka + Benthos + n8n
- AI-assisted optimization via a Python gRPC service
- a small operator UI to observe simulation outputs live
producer (Go) -> Redpanda/Kafka (telemetry.raw) -> Benthos -> Postgres (telemetry_events + alerts) + n8n webhook
orchestrator (Go REST) -> optimizer (Python gRPC + OpenAI)
redpanda: Kafka-compatible brokerpostgres: app data (vpp) + n8n DB (n8n)n8n: low-code workflow endpoint for low-battery eventsproducer: simulated smart-home device telemetry generatorbenthos: stream transform/routing pipelineoptimizer: Python service that generates optimization plansorchestrator: REST API (/healthz,/devices/{id}/latest,/devices/{id}/strategy,/alerts)ui: React operator console (http://localhost:3000)
producersimulates many smart homes sending telemetry continuously.benthosenriches events and stores them in Postgres.- low-battery events are also persisted as alerts and pushed to n8n webhook.
orchestratorexposes read APIs over that live stream state.optimizeruses your OpenAI key to produce a strategy on demand.uishows latest telemetry, recent alerts, and generated strategy for a device.
- Docker
- Go 1.23+ (for local build)
- Python 3.12+ (for local syntax checks / tooling)
- OpenAI API key
cp .env.example .env
# set OPENAI_API_KEY in .env
make up
make demoThen open:
- UI:
http://localhost:3000 - n8n:
http://localhost:5678
Stop everything:
make downmake up- build and start all servicesmake down- stop and remove containers/volumesmake logs- tail logsmake ps- list servicesmake proto- regenerate Go/Python gRPC stubsmake build- local Go build sanity checkmake demo- run end-to-end API smoke flow
Import n8n/workflows/low-battery.json in the n8n UI:
- open
http://localhost:5678 - create/import workflow from file
- activate it
Note: alerts are also persisted directly by Benthos into Postgres, so /alerts works even if n8n workflow import is skipped.
