Dave McCrory coined the term “data gravity” in 2010 to describe a phenomenon that has since become one of the most consequential dynamics in cloud computing: data attracts applications and services. The more data you store in a location, the more compute, analytics, and services you build around it. The more services you build, the harder it becomes to move the data. The data gains mass. The mass generates gravity. The gravity traps everything in orbit.
McCrory’s metaphor was prescient. Sixteen years later, data gravity is the single largest barrier to cloud migration, multi-cloud strategy, and — most critically and least discussed — privacy improvement. Organizations that want to move their data to a more private environment, adopt client-side encryption, or exit a provider whose privacy posture has degraded find that their data’s gravitational pull makes the move prohibitively expensive.
The privacy dimension of data gravity deserves dedicated analysis because it reveals how the accumulation of data in any single environment creates compounding privacy exposure that becomes harder to remediate over time.
The Physics of Data Gravity
Data gravity follows a predictable pattern:
Phase 1 — Seed. An organization deploys its first workload to a cloud provider. A few gigabytes of data land in object storage. The gravitational pull is negligible.
Phase 2 — Grow. Successful workloads expand. Databases, logs, backups, and analytics accumulate. The data reaches terabytes. Applications are built to query this data using provider-specific services (DynamoDB, BigQuery, Cosmos DB). The gravitational pull strengthens.
Phase 3 — Orbit. New services are deployed to the same provider because co-locating compute with data eliminates network latency and egress costs. Machine learning models are trained on the accumulated data. Business intelligence dashboards are connected. The data has attracted an ecosystem of services into its orbit.
Phase 4 — Capture. The cost of extracting the data exceeds any reasonable migration budget. The applications built around the data are too entangled with provider-specific services to port. The organization is gravitationally captured. Moving the data would require re-engineering the entire application stack.
Cloudflare’s 2025 State of the Internet report documented that the average enterprise stores 14.7 petabytes across all cloud environments, growing at 28% annually. At current hyperscaler egress rates ($0.05-0.09 per GB for AWS, Azure, and GCP), extracting 14.7 petabytes costs between $735,000 and $1.3 million in bandwidth charges alone — before accounting for the engineering effort to actually migrate applications.
Data Gravity as a Privacy Multiplier
Data gravity does not merely trap data. It compounds the privacy implications of that data’s location. Each phase of gravitational accumulation increases privacy exposure in ways that are difficult to reverse.
Accumulation of Historical Context
The longer data resides in a single environment, the more historical context accumulates. A cloud provider that stores your customer database for five years does not just hold your current customers. It holds the complete history of every customer interaction, every transaction, every behavioral pattern across that period.
This historical context is more privacy-sensitive than any point-in-time snapshot. A current customer list reveals who your customers are. Five years of transactional history reveals how their behavior has changed, what their financial trajectory looks like, and what inferences can be drawn about their personal circumstances. The privacy exposure is proportional to the temporal depth of the data.
Under GDPR’s data minimization principle (Article 5(1)(c)), organizations should retain only data necessary for the stated purpose. In practice, data gravity makes minimization difficult because the analytical services built around the data depend on historical depth. Deleting old data breaks dashboards, degrades ML models, and removes the historical comparisons that business users rely on. The data’s gravity — the services that orbit it — resists minimization.
Metadata Accumulation
Every interaction with cloud-stored data generates metadata: access logs, API call records, IAM policy evaluations, billing records, and provider-internal telemetry. This metadata accumulates alongside the data itself and is often more revealing than the data it describes.
Access logs reveal who looked at what data and when — creating a detailed map of interest, attention, and organizational relationships. Billing records reveal data volumes, request patterns, and compute usage, from which business activity levels can be inferred. IAM policy change logs reveal organizational structure changes, personnel departures, and security posture shifts.
This metadata is controlled by the cloud provider, not the customer. It is generated by the provider’s infrastructure, stored in the provider’s systems, and retained according to the provider’s policies. AWS CloudTrail events are retained for 90 days by default; configuring longer retention stores them in S3 — adding to the data mass. Azure Monitor logs default to 30-90 days of retention depending on the tier.
According to a 2025 analysis by the International Association of Privacy Professionals (IAPP), the average cloud customer generates approximately 3.2 terabytes of provider-side metadata per year per petabyte of stored data. Over five years, this metadata accumulation represents a privacy exposure that customers rarely account for in their risk assessments.
Compliance and Jurisdictional Calcification
Data stored in a specific cloud region is subject to that region’s legal jurisdiction. As data accumulates and services are built around it, the jurisdictional choice becomes permanent. An organization that built its analytics stack on AWS us-east-1 has made a jurisdictional choice — US data access laws, CLOUD Act applicability, US government subpoena authority — that cannot be changed without rebuilding the entire analytics infrastructure.
If the legal landscape shifts (a new data access law, a revocation of a privacy shield agreement, a change in cross-border transfer rules), the organization cannot quickly move its data to a different jurisdiction. The data’s gravity holds it in place. The legal environment around it changes, but the data cannot move.
The invalidation of the EU-US Privacy Shield in 2020 (Schrems II) demonstrated this dynamic at scale. European organizations with data in US cloud regions needed to implement supplementary measures — but many could not migrate the data itself because the applications built around it were too tightly coupled to the US cloud region. The data’s gravity created a jurisdictional trap.
Measuring Data Gravity
Data gravity is quantifiable. The following metrics help organizations assess their exposure:
Data mass: Total volume of data stored with each provider, measured in petabytes. Include structured data (databases), unstructured data (object storage, file systems), and backups.
Service coupling: Number of provider-specific services connected to the data. A dataset queried only by a portable application has low coupling. A dataset connected to DynamoDB, SageMaker, Athena, QuickSight, and Macie has high coupling.
Egress cost: The financial cost of extracting all data from the provider. Calculate at current egress rates. This is the minimum cost of escape — a lower bound, not a full estimate.
Migration engineering effort: The person-months required to re-engineer applications to use a different data store. This is typically 5-20x the egress cost for tightly coupled architectures.
Temporal depth: The oldest data in the store. Deeper history means more accumulated metadata and more historical privacy exposure.
Gravity score: A composite metric combining mass, coupling, cost, and effort. Organizations should calculate this quarterly and trend it. If the gravity score is increasing, the organization is becoming progressively more trapped.
Strategies for Reducing Data Gravity
Strategy 1: Data Minimization by Architecture
Do not rely on policy to enforce data minimization. Build architectures where data is automatically aged out, deleted, or crypto-shredded according to defined retention schedules.
Cloudflare KV’s TTL-based key expiration is an architectural minimization tool: data is created with an expiration time and automatically deleted when it expires. No cron job, no manual deletion, no “we forgot to clean up the old data.” The data ceases to exist because the architecture ensures it ceases to exist.
For analytics workloads that require historical data, aggregate and anonymize before the raw data’s retention period expires. The aggregated data has lower privacy sensitivity and lower gravitational mass.
Strategy 2: Encrypt Before Gravity Accumulates
Client-side encryption performed before data reaches the cloud provider changes the nature of data gravity. The cloud provider still holds data that accumulates mass. But the mass is ciphertext — opaque without keys the provider does not hold.
Encrypted data gravity is still data gravity for operational purposes (you still need to move the ciphertext if you migrate). But the privacy implications are fundamentally different. Metadata still accumulates. Access patterns are still visible. But the content of the data — the privacy-sensitive payload — is inaccessible to the environment where gravity holds it.
This does not eliminate data gravity. It decouples privacy exposure from gravitational mass.
Strategy 3: Multi-Cloud Data Distribution
Distributing data across multiple providers reduces gravitational concentration. No single provider holds enough data mass to create inescapable gravity.
The practical approach is not to split individual datasets across providers (which introduces consistency challenges) but to place different datasets in different environments based on privacy sensitivity and jurisdictional requirements:
- Customer PII in a European sovereign cloud
- Application state in a multi-region provider with external key management
- Analytics data in a cost-optimized provider with aggregated, anonymized inputs
- Ephemeral session data in edge compute with automatic expiration
Each dataset has its own gravitational center, and no single provider’s gravity captures the full portfolio.
Strategy 4: Portable Data Formats and Interfaces
Use open, portable data formats (Parquet, Avro, JSON) rather than provider-specific formats. Use standard interfaces (SQL, S3-compatible APIs, MQTT) rather than proprietary ones. This reduces service coupling — the second component of data gravity — by ensuring that the applications orbiting the data can operate with a different backend.
The infrastructure-as-code approach extends this principle to infrastructure configuration: express data store configurations in provider-neutral terms (Terraform, Pulumi) so that the infrastructure around the data is portable even if the data itself requires physical migration.
Strategy 5: Continuous Gravity Monitoring
Gravity is not a crisis that arrives suddenly. It accumulates gradually. Organizations that monitor their gravity metrics quarterly can detect the accumulation pattern and intervene before capture.
Specific triggers for intervention:
- Egress cost exceeds 5% of annual cloud spend
- Service coupling count exceeds 10 provider-specific services per dataset
- Temporal depth exceeds data retention policy by more than 12 months
- Any single provider holds more than 70% of data mass
The Provider Incentive
Cloud providers understand data gravity and engineer for it. Their architectures deliberately increase gravitational pull:
Egress pricing: Ingress is free. Egress costs money. This asymmetry incentivizes data inflow and penalizes outflow. AWS, Azure, and GCP all follow this model. The Bandwidth Alliance (led by Cloudflare) and recent regulatory pressure in the EU have begun to address this, but egress fees remain a substantial barrier.
Managed service integration: AWS S3 integrates seamlessly with Athena, Glue, SageMaker, and Redshift. Each integration adds a gravitational tether. The services are genuinely useful, which makes the gravitational capture feel like a benefit rather than a trap.
Free-tier data ingestion: CloudWatch Logs ingest is free. S3 PUT requests are free. Kinesis ingestion is priced to encourage high-volume data inflow. The financial incentives point one direction: data in, services around it, gravity up.
This is rational business behavior. Cloud revenue is roughly proportional to data gravity — the more data a customer stores, the more services they consume, the less likely they are to leave, and the more revenue they generate over time. The provider’s incentive is to maximize data gravity. The customer’s privacy interest is to minimize it.
Case Study: The Cost of Gravitational Escape
A mid-sized European fintech firm determined in 2024 that its AWS deployment — 4.2 petabytes across S3, RDS, and DynamoDB, with 47 connected AWS services — was incompatible with its revised privacy requirements following regulatory guidance on CLOUD Act exposure.
The migration plan estimated:
- Egress costs: EUR 315,000 at standard AWS egress rates
- Engineering effort: 18 months, 12 engineers (EUR 2.8 million)
- Re-encryption: All data encrypted with AWS KMS keys needed re-encryption with the new provider’s key management (4 weeks of compute time, EUR 42,000)
- Service migration: 47 AWS-specific services needed replacement or re-implementation
- Total cost: Approximately EUR 4.1 million
- Privacy gap during migration: 6-month period with data in both environments, requiring dual compliance maintenance
The firm’s original AWS deployment cost EUR 180,000. Data gravity turned a sub-200K deployment into a 4M exit cost — a 23x amplification.
The Stealth Cloud Perspective
Data gravity is the silent mechanism through which cloud providers accumulate power over their customers’ privacy. It is not malicious — it is structural. Data accumulates because that is what data does. Services orbit the data because co-location is efficient. Gravity strengthens because that is the physics of concentrated mass.
Stealth Cloud is designed to resist data gravity at the architectural level. The zero-persistence model means that session data does not accumulate — it exists in RAM for the duration of the session and is destroyed when the session ends. There is no growing mass of data in any cloud provider’s storage. There is no temporal depth to exploit. There is no metadata accumulation about historical access patterns.
The client-side encryption model means that any data that does transit the cloud is ciphertext whose privacy properties are independent of where it is stored. Moving ciphertext from one provider to another is a logistics operation, not a privacy operation — the data is equally opaque everywhere.
This is the architectural answer to data gravity: minimize the data that enters the cloud, encrypt the data that must, and retain nothing. An architecture with no persistent data has no data gravity. An architecture with no data gravity has no gravitational trap. And an architecture with no trap gives its operators what most cloud customers have quietly surrendered: the freedom to leave.