Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Durable Entities: Client abstractions #166

Closed
Tracked by #19
jviau opened this issue Jul 10, 2023 · 0 comments
Closed
Tracked by #19

Durable Entities: Client abstractions #166

jviau opened this issue Jul 10, 2023 · 0 comments
Assignees
Labels
durable-entities Related to the Durable Entities support milestone

Comments

@jviau
Copy link
Member

jviau commented Jul 10, 2023

Overview

To support interacting with entities from a client, we need to design & add appropriate APIs to do as such from a DurableTaskClient.

Requirements

The client additions should cover the same functionality from IDurableEntityClient.

  • Signal an entity
  • Read an entity state (this gets the entire state, not the response of an entity operation)
  • Query entities
  • Cull entity storage (removes empty entities, releases orphaned locks)

Non-Requirements

  • Not all exact overloads from the in-proc IDurableEntityClient will be supported.
  • Invoking entity via interface proxy.

Design

To avoid breaking changes but also avoid adding a complex plugin plattern (ala HttpContext.Features), we will simply design a new standalone abstract client DurableEntityClient. We will then add a single property onto DurableTaskClient:

public abstract class DurableTaskClient
{
    public virtual DurableEntityClient Entities => throw new NotSupportedException($"The client {this.GetType()} does not support durable entities.");
}
@jviau jviau self-assigned this Jul 10, 2023
@jviau jviau added durable-entities Related to the Durable Entities support milestone and removed Needs: Triage 🔍 labels Jul 10, 2023
@jviau jviau closed this as completed Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
durable-entities Related to the Durable Entities support milestone
Projects
None yet
Development

No branches or pull requests

1 participant