You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Proposal: ship the Reliable Reporting storage implementations as a separate distribution #1510
Keep the storage interface and the digest code in adcp, and publish the PostgreSQL ledger store, the row storage and its GCS, S3, Azure, and filesystem providers, and the change feed's read side as a separate distribution (for example adcp-reporting-storage), maintained in this repository and versioned on its own. The row storage is in no published release yet, so 9.0.0 GA is the cheapest point to decide.
Why
The ledger is about 23,400 lines in src/adcp/reporting/ledger. It ships in the protocol client, so storage fixes and protocol fixes share one version line.
The JS SDK marks the same surface experimental (adcp-client#3238) because breaking changes there forced a major release. A separate distribution gives that code its own version line instead of a label.
This is how comparable SDKs ship storage: Auth.js (@auth/pg-adapter), LangGraph (langgraph-checkpoint-postgres), and OpenTelemetry exporters are separate packages from the same maintainers. The A2A Python SDK keeps a small database store behind extras, which is the in-package alternative.
The extras are already split (pg, reporting-gcs, reporting-s3, reporting-azure) and the imports are lazy, so the cut follows existing seams. The server and decisioning modules import the ledger directly, which is the coupling to resolve first.
Agreed. Let's publish the reporting storage implementations as a separate distribution, maintained in this repository, before 9.0.0 GA. That covers the PostgreSQL ledger store, the row storage with its GCS/S3/Azure/filesystem providers, and the change feed's read side. The storage interface and the digest code stay in adcp. Nothing is on PyPI yet, so this is the cheapest point to make the cut. Resolving the server/decisioning imports of the ledger comes first, as you noted, and #1490 (pinning the public names) fits naturally with it.
Activity
bokelley commentedon Oct 15, 2026
Agreed. Let's publish the reporting storage implementations as a separate distribution, maintained in this repository, before 9.0.0 GA. That covers the PostgreSQL ledger store, the row storage with its GCS/S3/Azure/filesystem providers, and the change feed's read side. The storage interface and the digest code stay in
adcp. Nothing is on PyPI yet, so this is the cheapest point to make the cut. Resolving the server/decisioning imports of the ledger comes first, as you noted, and #1490 (pinning the public names) fits naturally with it.We're taking the same position on the JS side while SDK 16 is still in beta: adcontextprotocol/adcp-client#3286.
🤖 Generated with Claude Code