Bound concurrency and batch size
Choose a maximum number of active tasks based on downstream capacity and resource use, not only the number of items. Apply backpressure when the workflow creates work faster than dependencies can complete it.
Group related work only when the operation semantics allow partial completion. Give each item a stable identity and make side effects idempotent so a failed branch can be retried independently.
Collect results and recover deliberately
Define whether one branch failure stops the entire workflow, allows other branches to finish, or moves the item to a review path. Preserve successful outcomes so recovery does not repeat them.
Monitor active branches, queue depth, duration, and failure rate. Test cancellation, timeouts, and a downstream slowdown to confirm the fan-out remains within resource and service limits.