Skip to content

[Feature Request]: Seamless GAS-Level Load Balancing and Inter-Node Traffic Distribution #490

Description

@w0l4i

Background & Context
Building on the discussions regarding the Google Apps Script (GAS) architecture in #462, I would like to propose a new architectural approach to optimize traffic handling and bypass strict single-account quota limitations.

The Idea
Implement a distributed, seamless load balancer directly at the GAS level. If GAS deployments on different Google accounts can communicate with each other efficiently, we can create a network of GAS nodes that share the workload.

Instead of a client relying solely on one GAS URL, the architecture would allow for inter-GAS communication:

Inter-GAS Routing: Deployment A (on Account 1) receives traffic from the client. Instead of processing the entire payload itself, it can request or offload specific tasks (e.g., DNS routing, lightweight requests) to Deployment B (on Account 2).

Traffic Spreading: GAS nodes can talk to each other to spread the incoming client traffic, effectively balancing the bandwidth.

Expected Benefits

Quota Optimization: By distributing the UrlFetchApp and execution time across multiple Google accounts, we can dramatically reduce the chance of burning through a single account's daily quota.

Lower Latency & Faster Load Times: Dynamic balancing could route traffic through the most responsive GAS nodes at any given time.

Higher Bandwidth: Aggregating the capabilities of multiple accounts provides a higher overall throughput for the end client.

Technical Considerations / Open Questions

Does a GAS-to-GAS UrlFetchApp call heavily impact the quotas of both the sender and the receiver, or is the overhead low enough to justify the extra hop?

How can we manage a secure, dynamic registry of active GAS node endpoints for them to communicate with each other?

This could introduce a powerful new layer of balancing to the architecture. I'd love to hear the developers' thoughts on whether this inter-script communication is feasible within the current Rust/GAS design! 💡

@therealaleph @claude @euvel

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions