dapr/dapr

Consolidate retries across Dapr (Finish retry across all building blocks (service invocation, state management))

Open

#1.289 aberto em 19 de mar. de 2020

Ver no GitHub
 (8 comments) (12 reactions) (1 assignee)Go (2.064 forks)batch import
P1area/runtimehelp wantedkind/feature

Métricas do repositório

Stars
 (25.672 stars)
Métricas de merge de PR
 (Mesclagem média 2d 19h) (63 fundiu PRs em 30d)

Description

Today, there are 2 places for retries in Dapr:

The first is service invocation, which will retry based on transient errors and unauthenticated errors from the target Dapr sidecar. The logic for that retry sits in the direct messaging code under pkg/messaging.

The second is retry logic for stateful operations, which is configurable by the user on a per-call operation. the logic for that retry sits in components-contrib.

The proposal here is to consolidate retries under our middleware layer, and thus have them apply to all of Dapr's building blocks and APIs, and will apply for any future building blocks and APIs without any additional change.

This would also provide consistency in implementation, in addition to API surface coverage, and will apply to both HTTP and gRPC.

/cc @LMWF

Guia do colaborador