Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Underlying implementation details for dataflow runner

Our system processes high volumes of I/O operations, primarily consisting of concurrent external service calls. While our primary constraint is memory utilization due to parallel processing requirements, we currently manage this through request batching mechanisms.

The current architecture operates as a monolithic application, where all operations run within a single process on shared infrastructure. We're evaluating a potential migration toward a microservices architecture to enable independent scaling of different system components.

Google Cloud Dataflow appears to align with our requirements, however, we need to better understand its execution model and performance characteristics. Specifically, we're interested in understanding how the Dataflow runner compares to reactive programming models like Java Reactive Streams in terms of throughput and resource utilization.

Could anyone provide insights into Dataflow's internal implementation details or point us toward relevant technical documentation?

0 2 144
2 REPLIES 2

Hi @vivekrao1985,

Welcome to Google Cloud Community!

Dataflow is a fully managed service, which means Google manages all of the resources, and Dataflow service work is distributed across multiple Compute Engine VMs. It supports batch and streaming pipelines and handles very large datasets by processing data in parallel, which is advantageous in terms of scalability, as it can autoscale by provisioning extra worker VMs. Additionally, the Dataflow Runner offers automatic scaling and dynamic rebalancing, which is beneficial and efficient in terms of resource utilization, performance and throughput.

You can also monitor the usage and memory allocation through the Dataflow monitoring interface.

For more detailed technical documentation on Dataflow's implementation, execution model, and performance characteristic, you can refer to the following links, which include advantages, how it works, Dataflow Runner, building and running a pipeline, and monitoring and optimizing:

Was this helpful? If so, please accept this answer as “Solution”. If you need additional assistance, reply here within 2 business days and I’ll be happy to help.

Hi,

My question is more about the internal implementation of the cloud dataflow service and what technologies it uses to distribute and run tasks across the vms. Since our workload doesn't have a lot of data transformations but we're highly IO bound, a multi threaded implementation would be less efficient. So we're trying to understand what options are available, if any, or if dataflow isn't the right choice.