< Previous Challenge - Home - Next Challenge >
In this challenge, you’re going to add Dapr state management in the TrafficControlService
to store vehicle information.
Dapr includes APIs that support stateful, long-running services with key/value storage. Services can use these APIs to leverage a variety of popular state stores, without adding or learning a third party SDK.
Furthermore, the Dapr state management building block provides several other features that would otherwise be complicated and error-prone to build yourself:
The following diagram shows the high level architecture:
Right now, this is all you need to know about this building block. If you want to get more detailed information, read introduction to the state management building block.
You will need to modify the services to use the Dapr state management block.
TrafficControlService
(TrafficController
class) so it saves the state of a vehicle (VehicleState
class) using the Dapr state management building block after vehicle entry. Use the HTTP API to call your Dapr sidecar.TrafficControlService
(TrafficController
class) so it reads and updates the state of a vehicle using the Dapr state management building block after vehicle exit.Simulation
application.This challenge targets the operation labeled as number 3 in the end-state setup:
TrafficControlService
has been modified to use the Dapr state management building block when saving vehicle state on vehicle entry.TrafficControlService
has been modified to use the Dapr state management building block when reading & updating vehicle state on vehicle exit.dapr_redis
container that is used as the state-store in the default Dapr installation.
docker exec -it dapr_redis redis-cli
keys
and hgetall
to validate data inside the Redis cache store.az redis list-keys --name <redis-cache-name> -g <resource-group-name>
Redis Cache
resource and click on Console
to run similar commands as you did in the local Redis cache instance.