All 57 articles, sorted alphabetically
Production Agent Architecture: The Full Stack in Depth
A 2500-word walkthrough of a production agent runtime: UI, auth, planner, memory, tool router, policy, observability, and the tool ecosystem underneat…
Read article →Request hedging for ADK-Java agents
Deep-dive on request hedging (backup requests) in an ADK-Java agent: issue a duplicate to an independent replica when the primary misses a delay tuned…
Read article →ADK Java artifacts
Deep-dive on the ADK Java artifact service: the append-only versioned save/load contract, session vs user: namespaces, ToolContext and CallbackContext…
Read article →Authorization at the Agent Boundary
Enforce access control before the LLM runs: middleware interceptors, policy-as-config, deny-by-default, and the boundary&a…
Read article →ADK Java bulkhead isolation architecture
Deep-dive on bulkhead isolation in ADK Java agents: dependency-scoped thread-pool and semaphore compartments, virtual-thread economics, composition wi…
Read article →ADK Java callback architecture
Deep-dive on ADK Java callbacks: beforeAgent/afterAgent, beforeModel/afterModel, beforeTool/afterTool, short-circuit semantics, callback chains, injec…
Read article →ADK Java circuit breaker architecture
Deep-dive on the circuit breaker pattern in an ADK Java agent: a three-state machine (CLOSED, OPEN, HALF-OPEN) around one dependency, a sliding window…
Read article →ADK Java Core Module
What ships in the ADK Java core module and how the pieces compose: the agent abstraction and lifecycle, Runner and session state, the event stream, th…
Read article →ADK-Java dead-letter queue architecture
Deep-dive on dead-letter queues for ADK-Java agent pipelines: bounded retries and the attempt counter, the DLQ router and failure metadata, head-of-li…
Read article →ADK Java deployment -- packaging, sessions, virtual threads, JVM tuning
Deep-dive on deploying ADK Java agents: JAR/container packaging, Cloud Run/GKE/VM targets, externalized config and secrets, durable session backends f…
Read article →Environment + Configuration Management
ADK Java environment and configuration management: 12-factor config, env-driven builders, typed config helpers, profiles, secrets, validation, externa…
Read article →Gemini Function Calling in ADK Java, in depth: declarations, tool config, call ids and thought signatures
What actually crosses the wire when an ADK Java agent calls tools through Gemini: function declarations, toolConfig and the AUTO / ANY / NONE / VALIDA…
Read article →Agent governance architecture
Governance plane for Java-based agent runtimes: policy engine, approval broker, guardrail LLM, tool registry, session store, and a review loop.
Read article →ADK-Java Graceful Shutdown: Architecture Deep-Dive
How an agent runtime drains cleanly on SIGTERM — readiness propagation, admission gating, drain deadlines under the grace period, checkpointing long t…
Read article →Hierarchical Agents in ADK Java, in depth: the agent tree, supervisor delegation, AgentTool versus transfer, shared state and escalation
How hierarchical multi-agent systems work in Google's Agent Development Kit for J…
Read article →Idempotency architecture
Deep-dive on idempotency for side-effecting agent tool calls in a Java ADK service: how to retry aggressively without double-charging, double-sending,…
Read article →Implementing a Custom LLM in ADK Java, in depth: the BaseLlm contract, request and response mapping, tool calls, streaming, registration and testing
How to plug any model into Google's Agent Development Kit for Java by extending BaseLlm: the generateContent and connect contract, mappin…
Read article →Running ADK Java Agents on Kubernetes, in depth: probes, graceful drain, autoscaling on the right signal and model quotas
How to run Google ADK for Java agents on Kubernetes: what makes agent traffic different, a container image and JVM sizing, Spring Boot probes gated by…
Read article →ADK Java MemoryService architecture
Deep-dive on ADK Java&…
Read article →ADK Java observability architecture
Deep-dive on observing ADK Java agents: span trees rooted at the Runner, before/after callbacks as telemetry taps, streaming token accounting, session…
Read article →Choosing an Orchestration Pattern in ADK Java, in depth: a decision tree over transfer, AgentTool, Sequential, Parallel, Loop and custom agents, with cost, determinism and state contracts
A decision guide for multi-agent orchestration in the Java Agent Development Kit: who decides control flow, a question-driven decision tree, a matrix …
Read article →adk-java transactional outbox architecture
Deep-dive on the transactional outbox pattern for Java ADK agents: committing state and an outbox row in one JDBC transaction to kill the dual-write p…
Read article →Parallel Agents in ADK Java, in depth: designing a fan-out with ParallelAgent, isolating branches, gathering results and paying for concurrency
How to design the fan-out pattern with ParallelAgent in Google's Agent Development Kit for Java: when parallelism…
Read article →Parallel Agents in ADK Java, in depth: how a ParallelAgent fails, and how to turn one branch's error into a recorded result instead of an outage
How ParallelAgent in ADK Java really behaves under failure, read from the source: Flowable.merge semantics, escalation, shared state and branch-filter…
Read article →ADK-Java planner -- decomposing a goal into steps
Deep-dive on the ADK-Java planner: the complex-goal need, decomposition into a plan, the executor, plan-then-execute vs reacting per step, replanning …
Read article →ADK-Java RAG grounding -- answering from your data
Deep-dive on ADK-Java RAG grounding: the grounding need, the retrieval tool, grounding answers in retrieved context, citations, vector search, chunkin…
Read article →ADK-Java rate limiting architecture
Deep-dive on rate limiting in the Java Agent Development Kit: the token-bucket algorithm shaping bursty model and tool calls under hard provider quota…
Read article →ADK Java ReAct Implementation, in depth: thought, action and observation on LlmAgent, with budgets, guards and traces
How the ReAct pattern (reason, act, observe, repeat) is implemented with Google's Agent Development Kit for Java: mapping thoughts, actions and o…
Read article →Agent Router Architecture in Depth
A 2500-word walkthrough of agent router architecture: intent classifier, model pool, budgets, escalation, A/B evaluation.
Read article →ADK Java Runtime in Depth: What Happens From Building the Agent Tree to the First Event, and How to Boot Safely
The real boot sequence of a Google ADK for Java application: building LlmAgent trees and FunctionTools, choosing session, artifact and memory services…
Read article →ADK Java Runtime Configuration, in depth: RunConfig per invocation, LLM call budgets, streaming and tool execution modes, and a config factory you can operate
How per-invocation runtime configuration works in the Agent Development Kit for Java: the RunConfig fields and their defaults, how maxLlmCalls is enfo…
Read article →ADK Java Runtime
Every phase of the ADK Java runtime&am…
Read article →Extending the ADK Java Runtime, in depth: plugins as middleware, custom agents, model decorators, services and executors
How to extend Google's Agent Development Kit for Java without forking it: the Plugin interface and its hooks …
Read article →Model Call Orchestration Inside the ADK Java Runtime: One LLM Call from Request Assembly to Event, with Code
How the Agent Development Kit for Java turns session state into a model call and back: BaseLlmFlow&amp…
Read article →Session Context in ADK Java, in Depth: Sessions, State Prefixes, InvocationContext and ToolContext, and What Survives a Turn
How session context really works in Google's ADK for Java: th…
Read article →ADK Java Runtime, in depth: the thread model, blocking versus async tools, and choosing the thread that pays
How threads actually flow through Google's Agent Development Kit for Java: runAsync as a cold…
Read article →Tool Dispatch Mechanics in the ADK Java Runtime
What the ADK Java runtime does between the model asking for a tool and the result landing back in the session: name resolution, argument binding, fan-…
Read article →ADK-Java safety -- guardrails around agent behavior
Deep-dive on ADK-Java agent safety: the guardrails need, callbacks (before/after model and tool calls) as interception points, input and output guardr…
Read article →Semantic Memory + Vector Stores for ADK Java Agents, in depth: implementing BaseMemoryService on pgvector
How to give Google ADK Java agents long-term semantic memory: the BaseMemoryService contract, what to store, a pgvector schema with idempotent upserts…
Read article →Sequential Agent Chains in ADK Java, in depth: designing stages, deterministic gates, halting, nesting parallel and loop agents, cost and testing
How to design a sequential agent chain in Google's Agent Development Kit for Java: when a fixed pipeline beats model-driv…
Read article →Sequential Agents in ADK Java: Passing Context Between Steps with outputKey, State Placeholders and Conversation History
How context moves between the steps of an ADK Java SequentialAgent: the shared InvocationContext, session state written by outputKey and read through …
Read article →Sequential Agents in ADK Java, in depth: rollback and compensation when a later stage fails
What really happens when stage four of an ADK Java SequentialAgent fails after stages two and three changed the world, why there is no rollback, and h…
Read article →ADK Java + Spring
Deep-dive on integrating ADK Java with Spring Boot: agents and tools as DI-managed beans, tools as existing service beans, @ConfigurationProperties co…
Read article →Streaming agent architecture
Deep-dive on Java-based streaming agent runtime: SSE, async loop, model + tool events, interrupt, resume from checkpoint, and backpressure.
Read article →Sync vs Async LLM Contracts in ADK Java, in depth: the reactive types at every seam, sync adapters, bridging and failure modes
What ADK Java's model, tool, callback and runner contracts actually promise: Flowable, Single, Maybe and Completable at each seam, the stream fla…
Read article →Tool Observability + Metrics in ADK Java, in depth: the built-in execute_tool span, gen_ai.tool histograms, outcome metrics and SLOs
What ADK Java actually records for every tool call (the execute_tool span, gen_ai.tool.execution.duration and request/response size histograms, error.…
Read article →Timing Out ADK Java Tools Safely
How ADK Java enforces tool timeouts at runtime, how tool code detects and reacts to interruption, cleanup patterns with try-with-resources, graceful d…
Read article →Java agent tools architecture
Deep-dive on Java agent tool architecture: declaration, JSON schema, registry, executor, timeouts, idempotency, streaming, governance.
Read article →ADK Java Tools
How to define tools in ADK Java, the schema format for LLM function calling, and best practices for tool design.
Read article →Virtual threads for Java agents
Deep-dive on running a Java agent framework on virtual threads: the mount/unmount dance at blocking LLM and tool calls, the small carrier pool, struct…
Read article →Workflow orchestration architecture
Deep-dive on Java workflow orchestration: state machine, persistence, retries, timers, signals, compensation, versioning, testing.
Read article →Writing a Custom Function Tool in ADK Java, in depth: a worked tool from method to tested agent
A step-by-step guide to building one custom function tool in Google's Age…
Read article →Postgres event log storage for ADK Java, in depth: schema, the appendEvent transaction and running it in production
How to store ADK Java session events in PostgreSQL behind a custom BaseSessionService: an append-only event table, the one-transaction appendEvent pat…
Read article →adk-postgres Message History Storage, in depth: a conversation read model over the ADK Java event log
How to store and serve conversation message history for ADK Java agents in PostgreSQL: projecting ADK events into a message table, which events become…
Read article →adk-postgres Migrations and Schema Versioning, in depth: Flyway baselines, lock-safe PostgreSQL DDL, expand/contract, and versioning the event payload
How to evolve the PostgreSQL schema behind a self-built ADK for Java session service without downtime: what needs a version, Flyway layout and history…
Read article →adk-postgres Partitioning for High-Volume Workloads, in depth: choosing the key for the ADK event log, keeping per-session order, retention by DROP and converting a live table
How to partition the Postgres event log behind a custom ADK Java session service: when partitioning pays, why the key should be the day a session star…
Read article →adk-postgres Session Table, in depth: the adk_sessions row, its identity, lifecycle and update behaviour in PostgreSQL
The adk_sessions table behind a Postgres-backed ADK Java session service, column by column: composite identity and createSession semantics, listSessio…
Read article →