Horizontal vs Vertical Scaling for the PDE Exam

GCP Study Hub
619c7c8da6d7b95cf26f6f70
June 17, 2025

Scaling is one of those topics that sounds simple until you sit down for the Professional Data Engineer exam and a question forces you to pick between two architectures, both of which technically work. The exam wants you to know which type of scaling fits a given workload, which GCP services do which kind, and where the practical limits live. I want to walk through how I think about horizontal versus vertical scaling so it stops feeling like a coin flip on test day.

The two flavors of scaling

Horizontal scaling, often called scaling out, means adding more servers, instances, or nodes to a cluster so the workload gets distributed across them. If you have a Dataproc cluster running a heavy Spark job and you bump it from 4 worker nodes to 12, that is horizontal scaling. The work gets sliced into more pieces and spread across more machines.

Vertical scaling, often called scaling up, means adding more compute, like CPU, GPU, or RAM, to the servers you already have. If you have a Compute Engine VM running a single-threaded ETL process and you swap an n2-standard-4 for an n2-standard-16, that is vertical scaling. Same machine count, more horsepower per machine.

The mental picture I use is hiring. Horizontal scaling is hiring more workers so each one takes a smaller share of the job. Vertical scaling is giving the workers you already have stronger tools so each one can do more.

When each one wins

Horizontal scaling shines when the workload is parallelizable. Stateless web tiers, distributed query engines like BigQuery, streaming pipelines in Dataflow, and batch processing in Dataproc all fan out naturally. You also get fault tolerance for free, because losing one node out of fifty is a much smaller hit than losing one beefy machine out of two.

Vertical scaling wins when the work is not easy to split. A single SQL query that needs a giant in-memory join, a legacy application that does not know how to coordinate across nodes, or a database primary that has to serialize writes are all cases where adding more machines does not help. You need a bigger machine.

The catch with vertical scaling is the ceiling. Every machine type has a maximum, and once you hit it you cannot go further without changing architecture. Horizontal scaling has practical ceilings too, like network bandwidth and coordination overhead, but those ceilings sit much higher.

How GCP services handle scaling

One of the most testable angles on the Professional Data Engineer exam is knowing which GCP service scales which way. A few patterns to lock in:

  • BigQuery scales horizontally and does it for you. Slots are added to your query under the hood. You almost never reason about node count.
  • Dataflow autoscales horizontally by adding or removing worker VMs based on backlog and CPU utilization.
  • Dataproc can autoscale horizontally with autoscaling policies, adding worker nodes when YARN reports pending containers.
  • Bigtable scales horizontally by adding nodes. Throughput is roughly linear with node count.
  • Cloud SQL scales mostly vertically. You change the machine type to get more CPU or memory. Read replicas exist but writes still go to one primary.
  • Spanner scales horizontally by adding nodes, which is part of why it is the answer when a question hints at huge global write throughput with strong consistency.
  • Pub/Sub scales horizontally with no knobs at all. You publish and it absorbs the load.

Serverless services in GCP take care of scaling for you. Some offer horizontal autoscaling, some offer vertical, and some offer both. Horizontal autoscaling is the more common pattern, which is worth remembering when an exam question gives you a serverless option and asks how it will react to a traffic spike.

Exam framing

When I read a Professional Data Engineer question that hints at scaling, I look for a few cues. If the question mentions unpredictable traffic, growing user counts, or the need for fault tolerance, horizontal scaling is usually the right call and the answer is often a managed service like Dataflow, BigQuery, or Bigtable. If the question mentions a single workload that is bottlenecked on memory or CPU and the team does not want to rewrite the application, vertical scaling is the safer pick, often via a larger Compute Engine machine type or a beefier Cloud SQL tier.

Watch for questions that try to sell you on vertical scaling when the workload is clearly parallelizable. The exam likes to test whether you reach for the right tool. Throwing a bigger machine at a problem that should have been sharded across a cluster is a common wrong answer.

A few gotchas

Downtime is one. Vertical scaling on Compute Engine usually requires a stop and start, which means a brief outage. Cloud SQL maintenance windows are the same idea. Horizontal scaling on managed services is typically zero-downtime, which matters when a question asks about availability.

Cost shape is another. Horizontal scaling tends to track usage more cleanly, because you can add and remove nodes as demand changes. Vertical scaling locks you into the bigger machine until you scale down, and scaling down is often a manual step.

Finally, do not confuse autoscaling with elasticity. Autoscaling is the mechanism, while elasticity is the property. BigQuery is elastic without you ever touching an autoscaler. A Dataproc cluster with an autoscaling policy is elastic in a more visible way. Both can be correct answers depending on what the question is really asking.

My Professional Data Engineer course covers scaling patterns across every GCP data service and walks through the exam-style questions where the scaling choice is the whole point.

Get tips and updates from GCP Study Hub

arrow