Push Notifications
The SDK includes task push-notification configuration APIs and server-side delivery abstractions.
Client API surface
A2AClient exposes:
CreateTaskPushNotificationConfigGetTaskPushNotificationConfigListTaskPushNotificationConfigsDeleteTaskPushNotificationConfig
Use these only when the target Agent Card and server policy indicate push-notification support.
Server components
PushNotificationServicecoordinates stored configs and delivery.PushNotificationStorepersists webhook configs.PushNotificationDeliveryClientabstracts outbound delivery.HttpPushNotificationDeliveryClientprovides a simple libcurl-backed synchronous delivery path when libcurl support is enabled.
Recommended executor flow
- Persist task state in your
TaskStoreorTaskLifecycleService. - Register inline configs from
SendMessageRequestwhen present. - Call
NotifyTaskUpdated(task)after status changes. - Propagate delivery failures instead of silently dropping them.
- Override push-config CRUD executor methods only when push support is fully configured.
Production guidance
For production, prefer a durable queued delivery client with retries, backoff, webhook URL validation, SSRF controls, credential protection, and delivery telemetry. Keep TLS policy at least as strong as the built-in delivery client, which requires TLS 1.2 or newer for HTTPS URLs.
Example
See examples/apps/push_notifications/main.cpp.