Skip to content

A2A SDK interoperability validation across Rust, C#, Go, Python, Java, and JavaScript #161

@muscariello

Description

@muscariello

Summary

Create a CSIT interoperability program for the A2A SDKs so we can validate mixed-language compatibility across the official implementations published under a2aproject.

Why

This work is broader than the Rust SDK alone. It belongs in CSIT because the objective is cross-repository, repeatable, system-level validation of interoperability between independent SDK implementations.

The target SDK repositories are:

  • agntcy/a2a-rs
  • a2aproject/a2a-dotnet
  • a2aproject/a2a-go
  • a2aproject/a2a-python
  • a2aproject/a2a-java
  • a2aproject/a2a-js

Related upstream repos that may help scope or automate this work:

  • a2aproject/A2A
  • a2aproject/a2a-tck
  • a2aproject/a2a-samples

Scope

  • define an interoperability matrix covering Rust client <-> non-Rust server and non-Rust client <-> Rust server flows
  • identify the shared transports that should be validated first across SDKs
  • validate agent card compatibility and protocol negotiation behavior across implementations
  • validate core unary flows such as send_message, get_task, list_tasks, and cancel_task
  • validate streaming flows such as send_streaming_message and subscribe_to_task
  • validate metadata and ServiceParams propagation where transports support it
  • validate representative error mapping and failure behavior across SDK pairings
  • document spec ambiguities or implementation mismatches discovered during testing
  • add repeatable automation and fixtures so interoperability checks can run in CI or release validation

Per-SDK tracking

  • Rust: a2aproject/a2a-rs
  • C# / .NET: a2aproject/a2a-dotnet
  • Go: a2aproject/a2a-go
  • Python: a2aproject/a2a-python
  • Java: a2aproject/a2a-java
  • JavaScript: a2aproject/a2a-js

Acceptance Criteria

  • CSIT contains a documented interoperability matrix for the target SDKs
  • at least one shared transport and the core unary plus streaming flows are validated for each supported SDK pairing in scope
  • incompatibilities are either fixed, explicitly tracked, or escalated to spec or upstream SDK issues
  • contributors can rerun the interoperability checks from repo documentation and automation without reconstructing the environment manually

Notes

This epic should drive follow-up task issues in CSIT for individual SDK pairings, transport coverage, fixture setup, and CI automation.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions