How bhancockio/adk-fullstack-deploy-tutorial works
This is a fullstack goal-planning agent template: users create or select a session, submit a goal in chat, and receive streamed agent output and activity updates. The frontend routes streaming requests to either the local ADK backend or Vertex AI Agent Engine; session management and health checks are supporting branches. README documentation establishes capabilities whose implementation was not sampled, so those components are included only where the tree and docs support them.
Main entry points: connection-manager.ts SSE connection · route.ts Stream API route · run-sse-local-backend-handler.ts Local stream handler · run-sse-agent-engine-handler.ts Agent Engine handler
Components 23
Chat frontend
- Chat UI
nextjs/src/components/chat/ChatContainer.tsx - Streaming manager
nextjs/src/components/chat/StreamingManager.tsx - Messages and events
nextjs/src/hooks/useMessages.ts - Activity timeline
nextjs/src/components/ActivityTimeline.tsx
Streaming API
- SSE connection
nextjs/src/lib/streaming/connection-manager.ts - SSE event processor
nextjs/src/lib/streaming/stream-processor.ts - Stream API route
nextjs/src/app/api/run_sse/route.ts - Backend routing config
nextjs/src/lib/config.ts - Local stream handler
nextjs/src/lib/handlers/run-sse-local-backend-handler.ts - Agent Engine handler
nextjs/src/lib/handlers/run-sse-agent-engine-handler.ts - Health API route
nextjs/src/app/api/health/route.ts
Agent runtime
- ADK goal agent
app/agent.py - Cloud configuration
app/config.py - Agent Engine app
app/agent_engine_app.py - Local ADK API
Session management
- Session state
nextjs/src/hooks/useSession.ts - Session selection
nextjs/src/components/chat/SessionSelector.tsx - Session actions
nextjs/src/lib/actions/session-actions.ts - Session service
nextjs/src/lib/services/session-service.ts - Browser message storage
nextjs/src/hooks/useMessages.ts
Other components
- User
- Vertex AI Agent Engine
- Gemini model
Connections 29
- User → Chat UI: submits goal
- Chat UI → Streaming manager: starts stream
- Streaming manager → SSE connection: sends request
- SSE connection → Stream API route: POSTs stream
- Stream API route → Backend routing config: selects backend
- Stream API route → Local stream handler: dispatches local
- Stream API route → Agent Engine handler: dispatches engine
- Local stream handler → Backend routing config: resolves endpoint
- Local stream handler → Local ADK API: forwards stream
- Agent Engine handler → Backend routing config: resolves endpoint
- Agent Engine handler → Vertex AI Agent Engine: streams request
- Local ADK API → ADK goal agent: runs agent
- Vertex AI Agent Engine → ADK goal agent: runs deployed agent
- ADK goal agent → Gemini model: plans with
- Agent Engine handler → SSE connection: returns SSE
- Local stream handler → SSE connection: returns SSE
- SSE connection → SSE event processor: processes events
- SSE event processor → Messages and events: updates messages
- SSE event processor → Activity timeline: updates activity
- Chat UI → Session state: manages session
- Session selection → Session state: switches session
- Session state → Session actions: creates session
- Session actions → Session service: invokes service
- Session service → Local ADK API: creates session
- Session service → Vertex AI Agent Engine: creates session
- Messages and events → Browser message storage: reads and writes
- Health API route → Local ADK API: proxies health
- Cloud configuration → Agent Engine app: configures deployment
- Agent Engine app → Vertex AI Agent Engine: deploys agent