Which components handle AKS state, pub/sub, and traffic splitting?

Design an application architecture Design compute solutions
Answer On AKS, use Dapr for state management, Dapr for pub/sub messaging, and Istio for traffic routing and splitting.

HOTSPOT You plan to deploy multiple containerized microservice-based apps to Azure Kubernetes Service (AKS). You need to recommend a solution that implements the following functions: • State management • Pub/sub messaging • Traffic routing and splitting The solution must minimize administrative effort. What should you include in the recommendation for each function? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point. exhibit

Community Insight

The exam tests whether you can separate application-level building blocks (Dapr state and pub/sub) from network-level traffic control (Istio routing/splitting), and the trap is assuming one tool covers all three functions.

For containerized microservices on AKS, Dapr provides the state management and pub/sub building blocks, while Istio delivers traffic routing and splitting. This page confirms each selection and explains why an application runtime, not a service mesh, owns state and messaging.

Many learners pick Istio for all three slots because a service mesh 'manages microservices', but Istio exposes no application state or pub/sub API — state and messaging must come from Dapr's building blocks.

Community Discussion (3 comments)

Ras1364 👍 2
State management Dapr Pub/sub messaging Dapr Traffic routing and splitting Istio
Splash04 👍 1
State management should be Dapr, because Dapr provides a dedicated state management building block for distributed applications. Pub/sub messaging should also be Dapr, because publish/subscribe is one of Dapr’s core application-level building blocks. Traffic routing and splitting should be Istio, because Istio is a service mesh designed for traffic management, including routing and traffic splitting; Flux is mainly a GitOps tool.
gpais 👍 1
State management: • Selection: Dapr • Reason: Dapr (Distributed Application Runtime) provides a dedicated State Management building block API that allows microservices to save, retrieve, and delete key-value state data seamlessly across supported backends (like Redis or Cosmos DB) without writing engine-specific code. Neither Flux (a GitOps deployment tool) nor Istio (a service mesh) handles application state. Pub/sub messaging: • Selection: Dapr • Reason: Dapr features a native Publish and Subscribe (Pub/sub) building block API that enables loosely coupled microservices to communicate asynchronously via message brokers (like Azure Service Bus or Event Hubs), abstracting the underlying pub/sub architecture away from the application code. Traffic routing and splitting: • Selection: Istio • Reason: Istio is an industry-standard Service Mesh framework designed specifically to manage advanced network operations inside Kubernetes. It natively handles intelligent traffic routing and percentage-based traffic splitting (e.g., canary deployments, blue/green deployments) across your microservices at the network layer.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Expert Analysis

Why the Answer Is Correct

Dapr's state management building block gives microservices a standardized key-value API (save, get, delete) over backends such as Azure Cache for Redis or Azure Cosmos DB, so no service writes engine-specific state code and administrative effort stays low. Dapr's pub/sub building block likewise abstracts the broker (Azure Service Bus, Redis Streams, Kafka) behind a consistent publish/subscribe API with CloudEvents and at-least-once delivery. Traffic routing and splitting — canary, blue/green, weighted versions — is a layer-7 service-mesh concern handled by Istio's VirtualService and DestinationRule weight fields. Because AKS offers a managed Istio-based service mesh add-on, the routing requirement is met without operating your own control plane, satisfying the 'minimize administrative effort' constraint.

Why Other Candidate Answers Are Wrong

Assigning Istio to state management or pub/sub messaging fails because a service mesh routes and secures traffic; it has no application state store API and no publish/subscribe abstraction, so each microservice would have to bind directly to a broker or database SDK. Assigning Dapr to traffic routing and splitting fails because Dapr's building blocks target application concerns (state, pub/sub, service invocation, secrets) and do not provide weighted layer-7 traffic distribution across service versions. GitOps tools such as Flux only reconcile deployment manifests and cannot hold state or split traffic, and event-driven autoscalers such as KEDA scale workloads but never route or persist anything. Mixing one tool across all three functions therefore breaks at least one requirement.

Community Comment Notes

Ras1364 recorded exactly the same mapping — Dapr for state management, Dapr for pub/sub messaging, and Istio for traffic routing and splitting — which matches the vendor's body of knowledge for AKS microservices. Splash04 reasoned that state management and pub/sub should both be Dapr because "publish/subscribe is one of Dapr's core application-level building blocks", while Istio is "a service mesh designed for traffic management". gpais added that Dapr offers a "dedicated State Management building block" that works across backends like Redis or Cosmos DB, and pointed out that neither a GitOps deployment tool nor a service mesh handles application state. The consensus across these comments is consistent with the answer given here, and no comment proposes a viable alternative mapping.

Official Reference

Exam Strategy

Map each hotspot row to a layer before you look at the dropdown choices: application state and messaging are runtime building blocks (Dapr), while routing, splitting and policy are mesh concerns (Istio). Watch for the 'minimize administrative effort' phrase, which signals managed add-ons such as the AKS Istio service mesh add-on rather than self-installed Helm charts.

Frequently Asked Questions

Why is Istio used for traffic routing and splitting instead of Dapr in this AKS scenario?

Istio's VirtualService and DestinationRule weight fields perform layer-7 canary and blue/green splitting, whereas Dapr building blocks cover state and pub/sub, not weighted traffic distribution.

Does the AKS Istio service mesh add-on reduce administrative effort for this design?

Yes. The Istio-based service mesh add-on is managed and upgraded by Azure, so you get traffic routing and splitting without running or patching your own Istio control plane.

More AZ-305 FAQ →

Related Analysis

Practice All AZ-305 Questions

Access 95 questions with complete answers and detailed explanations.

View Full AZ-305 Practice Test →

← Back to AZ-305 Study Guide