Data Flow: godaddy-tofu
Data Flow: godaddy-tofu
Diagram
Components
| Component | Purpose | Notes |
|---|---|---|
| tofu CLI | User interface for plan/apply/destroy | OpenTofu or Terraform CLI |
| godaddy provider | Terraform Plugin Framework provider | Translates Tofu resource lifecycle to API calls |
| pkg/godaddy/client | Go HTTP client for GoDaddy API | Handles auth, JSON marshaling, error handling, rate limit backoff |
| api.godaddy.com | GoDaddy REST API | Returns 429 with retryAfterSec on rate limit |
Key Decisions
- Read uses GET by type+name (most specific) — avoids fetching all records and filtering client-side
- Create/Update uses PUT (replace by type+name) — idempotent, matches Tofu's desired-state model
- Delete uses DELETE by type+name — only removes the managed record, not siblings
- Rate limit handling in the client layer (pkg/godaddy/) — provider doesn't need to know about retries
Related
arch-domain-godaddy-tofu— entity definitionsarch-deployment-godaddy-tofu— where the provider runsproject-godaddy-tofu— project page