{"results":[{"id":"billing-location-coupling-creates-irreversible-cost-profile","text":"As location consolidation makes location the sole billing axis and cross-location migration remains impossible, initial location choice creates an irreversible cost profile for the deployment's lifetime.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"compute-scales-vertically-storage-plateaus","text":"Hetzner's scaling story is split: compute and load balancing have predictable vertical paths (four server series, three LB tiers at linear 1x/3x/6x ratios), but storage hits different ceilings in each paradigm (10TB volumes, EU-only objects, location-bound blocks) with no universal scaling path.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"cost-optimization-requires-location-aware-architecture","text":"Cost optimization on Hetzner is inseparable from architecture — the 40x regional traffic asymmetry makes location selection a billing decision, while resource binding (volumes, IPs, networks) makes location selection an architectural commitment, so cost-efficient architectures must account for location as a first-class design parameter from day one rather than treating it as a deployment detail.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"data-migration-between-locations-impossible","text":"Hetzner resources are location-coupled (servers, volumes, networks bound to their creation location), meaning moving workloads between locations requires recreating resources rather than migrating them in place.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"datacenter-sovereignty-split-model","text":"German datacenters (NBG1, FSN1) are self-operated by Hetzner while international locations (US, Singapore) use third-party facilities, creating a sovereignty distinction relevant for data residency requirements.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"datacenter-to-location-deprecation-wave","text":"Hetzner is systematically deprecating datacenter-level resource placement in favor of location-level across servers, Primary IPs, and resource attributes — a coordinated API migration signaling that datacenter IDs will become internal implementation details.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"entry-ease-masks-irreversible-architecture","text":"Hetzner's entry-friendliness masks the criticality of initial architecture decisions — the frictionless on-ramp (no contracts, hourly billing, free infrastructure services) makes casual initial decisions likely, but storage composition and location choices are effectively permanent (no cross-location migration, paradigm-specific constraints), creating an experience where the easiest phase is also the most consequential.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"eu-data-sovereignty-complete-but-non-exportable","text":"EU data sovereignty is achievable using Hetzner's self-operated German datacenters with co-located Object Storage, but this sovereignty model cannot extend internationally — non-EU locations use third-party facilities and lack Object Storage entirely, making the EU sovereignty architecture a dead end for global expansion.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"frictionless-onramp-to-irreversible-lock-in","text":"Hetzner's business model creates a structural trap: the same frictionless on-ramp (no contracts, hourly billing, free infrastructure) that attracts deployments systematically obscures the irreversible architectural decisions embedded in initial setup — location, storage paradigm, and placement group choices that cannot be changed later — while growth reveals constraints (compute-storage asymmetry, billing-location coupling) that are too entrenched to escape.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"growing-deployments-face-location-migration-trap","text":"Growing Hetzner deployments face a migration trap — scaling ceilings force multi-provider solutions, but location lock-in makes migration progressively harder as data and dependencies accumulate, creating a narrowing window of escape.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"growth-constrained-along-two-irreversible-axes","text":"Hetzner deployment growth is constrained along two irreversible axes that compound over time — compute-storage scaling asymmetry limits what can be built (storage plateaus while compute scales), and billing-location coupling determines what it costs (40x traffic variance locks to initial location), with both constraints established at deployment inception and neither addressable through platform evolution alone.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-cli-default-config-path","text":"The default hcloud CLI config file location is `~/.config/hcloud/cli.toml`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-datacenter-attribute-deprecated","text":"The `datacenter` attribute is deprecated for Primary IPs and Servers in hcloud CLI v1.59.0; `location` is the replacement concept.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-default-config-path","text":"The default hcloud CLI config file location is `~/.config/hcloud/cli.toml`","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-location-datacenter-relationship","text":"Locations are grouped into datacenters; a single location can contain multiple datacenters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-location-read-only","text":"The `hcloud location` command group is read-only with only `list` and `describe` subcommands — locations are immutable infrastructure metadata defined by Hetzner.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-locations-contain-datacenters","text":"Hetzner Cloud locations contain datacenters; datacenters are referenced when creating servers, volumes, and other location-bound resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-network-subnets-scoped-to-network-zone","text":"Hetzner Cloud subnets are scoped to a network zone (e.g., `eu-central`), not to a specific datacenter location.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-primary-ip-datacenter-flag-deprecated","text":"The `--datacenter` flag on `hcloud primary-ip create` is deprecated; `--location` or `--assignee-id` should be used instead (per 2025-12-16 datacenter phase-out).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null},{"id":"hcloud-server-create-datacenter-deprecated","text":"The `--datacenter` flag on `hcloud server create` is deprecated; `--location` should be used instead (per 2025-12-16 changelog).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null}],"count":64,"limit":20,"offset":0}