Chapter 2. State

State management is an important topic in application design. From file access to relational databases to key/value stores, most applications need to manipulate state one way or another. State management in the cloud brings its own unique challenges, as we’ll discuss in this chapter. Dapr state management aims to provide a simple state API that helps you deal with these challenges while writing clean, platform-agnostic state-handling code.

State Management

Calling a customer service line can be a painful experience—you wait on the line for tens of minutes, you spend more time explaining your situation, you dodge all the playbook moves designed to keep you from canceling your order or subscription, and then the call disconnects. After another long wait, you finally get reconnected, and then you need to start all over again with a new agent.

Some customer service departments first open a case when you call. If the call gets disconnected, you can then reconnect and pick up where you left off, because the new agent will have some context of what happened in the previous call. It’s often still a tedious experience, but being able to resume rather than starting over is definitely an improvement.

The support case number serves as an enduring record during a complex transaction. When the transaction is handled by multiple agents, the transaction state is carried over by the case number. This is the behavior of a stateful service, which is the focus of the chapter.

Get Learning Dapr now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.