# Webhooks **Last Updated:** 2025-01 **Confidence:** High ## Summary Webhooks notify external systems when events occur in rdev. Subscriptions are created via API, and events are delivered with automatic retries. **Key Facts:** - Event types: `command.started`, `command.completed`, `command.failed` - Retry policy: 3 attempts, 5s initial backoff, exponential - Delivery history stored for debugging - Worker pool (10 workers) for parallel delivery **File Pointers:** - Handler: `internal/handlers/webhooks.go` - Dispatcher: `internal/webhook/dispatcher.go` - Repository: `internal/adapter/postgres/webhook.go` - Domain: `internal/domain/webhook.go` ## Subscription ```json POST /webhooks { "url": "https://example.com/webhook", "events": ["command.completed", "command.failed"] } ``` ## Event Payload ```json { "event": "command.completed", "timestamp": "2025-01-15T10:30:00Z", "data": { "command_id": "cmd-123", "project": "my-project", "type": "claude", "exit_code": 0, "duration_ms": 5432 } } ``` ## Related Topics - [Command Execution](../features/command-execution.md) - [Project Service](./project-service.md)