Skip to content

Reconsider IA2AClient, ITaskManager, ITaskStore interfaces #133

@SergeyMenshykh

Description

@SergeyMenshykh

Context:

The A2A SDK declares a few public interfaces: IA2AClient, ITaskManager, ITaskStore, and corresponding classes that implement them. While having the interfaces may be quite convenient for polymorphic (when different implementations are required) and testability (mocking a class for testing purposes) cases, exposing the interfaces as part of the public API surface of SDKs may have downsides, such as a source of breaking changes for all third-party implementations that SDK authors are not aware of when new members are added to them.

ToDo:

  1. Identify all public interfaces in the SDK.
  2. For each interface, consider:
    • Whether it is actually required, and if not, consider removing it.
    • Whether it can be turned into an abstract class. New members can easily be added to abstract classes as virtual without breaking existing implementations, but there could be a downside in case a consumer's class already inherits from another class - C# does not allow multiple inheritance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions