Our Blog
Notes, essays from the Riverborn team on AI development, edge computing, and modern engineering.
Migrating a Sales AI System from ADK 1.x to ADK 2.0 Workflows
How a multi-tenant sales agent system grew from a Google ADK hello-world into a 40-worker orchestrator, then got rebuilt on ADK 2.0 Workflow graphs: what broke, what held up, and what we'd tell any team making the same jump.

On-Device RAG Architecture: How Nongor Does Private Document Search
A technical breakdown of Nongor's on-device RAG architecture: hybrid dense and sparse retrieval, reciprocal rank fusion, cross-encoder reranking, citation validation, and running fully local with LM Studio.
Why Nested AI Workflows Sometimes Fail to Resume
Nested human-in-the-loop workflows fail intermittently when an interrupt matches the wrong sub-workflow, or when a resume reads state before the pause write lands. How ADK 2.0, LangGraph, LangChain, CrewAI, AutoGen, and n8n handle both halves.
Why AI Agents Restart Instead of Resuming (And How to Fix It)
A multi-agent coordinator that re-classifies every message will restart mid-flow workflows the moment a human pauses them. The same fix — an active-workflow marker checked before routing — across ADK 2.0, LangGraph, LangChain, CrewAI, AutoGen, and n8n.
How a Static IP and a Cloudflare 521 Broke Our GCP Deploy
We shipped a backend to a Compute Engine VM behind Cloudflare. The container came up fine. DNS and a 521 error did not. Two failures, both preventable, both worth knowing before your first deploy.
Fixing an Infinite Sync Loop in Our Twenty CRM Integration
We wired bidirectional sync into self-hosted Twenty CRM. Our own writes kept echoing back as inbound changes. The fix wasn't a clever filter — it was storing our API key identity once and comparing against it on every webhook.

We Didn't Shut Down. Introducing Riverborn
The story behind why Connekt Studio retired its name and transitioned into Riverborn to focus on production-grade AI systems.
