Data Flow: godaddy-tofu

arch-dataflow-godaddy-tofu Architecture

architecture active

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
  • arch-domain-godaddy-tofu — entity definitions
  • arch-deployment-godaddy-tofu — where the provider runs
  • project-godaddy-tofu — project page