Hello! I’m thinking about using Temporal for work distribution (load balancing) for long-running, asynchronous activities that need to do a fair bit of processing (external data ingestion, transformation, and storage). Temporal isn’t necessarily a perfect fit for this use-case, but the task queue concept in Temporal provides a very attractive set of primitives that would eliminate a significant portion of our implementation.
I have a specific question about the task queue documentation on this page: Tasks | Temporal Documentation
A Worker Processes polls for a message only when it has spare capacity, avoiding overloading itself.
Can you please expand more on “spare capacity”; is this simply referring to the worker knowing how many tasks are in-flight (e.g. it understand limits defined such as How to set WorkerOptions in Go | Temporal Documentation), or is there more going on here? How does the worker limit itself to avoid overloading?