[FEATURE REQUEST] Expose read consistency in DaprClient.get_state
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 76/100
Línea de trabajo
Comience con la construcción síncrona de la solicitud en dapr/clients/grpc/client.py alrededor de la línea 703 y con la ruta asíncrona en dapr/aio/clients/grpc/client.py alrededor de la línea 641. Compare los campos de GetStateRequest con el manejo existente de la consistencia del estado y, a continuación, verifique que ambas rutas públicas de get_state() conserven los valores predeterminados existentes y codifiquen la consistencia seleccionada en el campo protobuf dedicado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the feature
Please expose an optional read-consistency argument on both synchronous and asynchronous DaprClient.get_state(), preserving existing defaults and positional arguments.
I encountered this while investigating DaprSession in the OpenAI Agents SDK. Selecting strong consistency passes state_metadata={"consistency": "strong"} to the Dapr client, but that only populates request metadata. It does not set the dedicated GetStateRequest.consistency field.
Current behavior
With dapr==1.16.0, both public methods have the arguments store_name, key, state_metadata, and metadata (gRPC call metadata). The same limitation remains in the inspected current source at e4ad1818079c5089814e4d1610b585286d28b98f:
Both construct the request as:
req = api_v1.GetStateRequest(store_name=store_name, key=key, metadata=state_metadata)
Reproduction evidence
Using the installed asynchronous Dapr client and a local grpc.aio capture server implementing DaprServicer.GetState and SaveState, I exercised public DaprSession.get_items() and add_items() with consistency=DAPR_CONSISTENCY_STRONG. The client HTTP readiness check was disabled only for this isolated mock-server test; protobuf serialization and gRPC transport used the actual Dapr client.
The captured read request was:
{
"store_name": "statestore",
"key": "session-strong:messages",
"consistency_enum_value": 0,
"consistency_name": "CONSISTENCY_UNSPECIFIED",
"metadata": {"consistency": "strong"}
}
The corresponding write request correctly carried options.consistency = CONSISTENCY_STRONG. This establishes the request-encoding difference; it does not demonstrate stale reads against a real state store. The wire capture exercised the async path; the sync-path observation is from source inspection.
Expected behavior and scope
Allow callers to request Consistency.strong or Consistency.eventual through the public get_state() API and serialize that choice into the dedicated protobuf field. Omitting the new argument should preserve CONSISTENCY_UNSPECIFIED. Actual guarantees remain dependent on state-store support.
This request is limited to get_state(): the inspected GetBulkStateRequest does not have a corresponding consistency field.
Release Note
RELEASE NOTE: ADD Optional read-consistency selection for synchronous and asynchronous DaprClient.get_state().
- Lenguaje dominante
- Python
- Estrellas
- 272
- Forks
- 152
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 4
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de dapr/python-sdk
-
dapr-ext-workflow good first issue kind/enhancement P2
Dificultad 2/5 1-2 días Aptitud para principiantes 72/100
dapr/python-sdk#853 · 4 comentarios ·
-
feature-request
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
dapr/python-sdk#1214 ·
-
dapr-ext-workflow kind/enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
dapr/python-sdk#1213 ·
-
dapr-ext-workflow kind/enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
dapr/python-sdk#1188 ·
-
dapr-ext-workflow kind/enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
dapr/python-sdk#1181 · 1 asignado ·
Todos los issues de dapr/python-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/skills#1811 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
speaches-ai/speaches#678 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
datalayer/mcp-compose#42 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
conda-forge/spacy-feedstock#177 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
UKGovernmentBEIS/inspect_evals#2523 ·