---
title: Batch Generation Architecture
description: "Assette supports batch generation as a performance-optimized mechanism to execute multiple document generations in parallel. This feature is particularly useful for automating large-scale report production, enhancing throughput while maintaining efficient resource usage. The batch generation process is tightly scoped to…"
url: "https://learn.assette.com/docs/batch-generation-architecture/"
updated: "2025-06-27"
category: Developers / Developer FAQ
---

# Batch Generation Architecture

Assette supports batch generation as a performance-optimized mechanism to execute multiple document generations in parallel. This feature is particularly useful for automating large-scale report production, enhancing throughput while maintaining efficient resource usage. The batch generation process is tightly scoped to the tenant level, ensuring that limits and performance behaviors are isolated per tenant.

Each tenant in Assette can run up to **five batches concurrently**. These batches operate in parallel, each functioning independently to process document generation tasks. Within a single batch, up to **ten documents** are generated simultaneously. This means that at full capacity, a tenant can generate **up to 50 documents in parallel** across all five batches.

## Data Object Call Limits

Document generation in Assette often involves invoking Data Objects, which connect to underlying data sources (e.g., Snowflake) to retrieve the required information. Each document generation is allowed up to **20 Data Object calls**. With ten documents processed concurrently per batch, this results in a maximum of **200 concurrent Data Object calls per batch**.

When utilizing all five concurrent batches, the system may initiate **up to 1,000 concurrent Data Object calls** across all batches. Any additional documents or batches beyond this capacity will be automatically **queued** and processed once system resources become available.

## Managing Source System Constraints

While Assette can efficiently handle large volumes of document generation, some data sources may not be able to sustain high levels of concurrent queries. For example, if a source system such as Snowflake encounters load or rate limitations, users should consider:

- **Reducing the number of concurrent batches**
- **Decreasing the number of documents per batch**
- **Scaling the resources of the source system** to better handle the volume of requests

These strategies can help balance system load and ensure successful data retrieval without overloading the source systems.

## Troubleshooting and Optimization

If performance issues or failures occur during batch generation, consider the following troubleshooting steps:

- **Optimize Data Blocks**: Review and streamline the logic and configuration of Data Blocks to reduce complexity and processing time.
- **Use Smaller Batches**: Lowering the batch size can reduce the number of concurrent Data Object calls, alleviating pressure on backend systems.
- **Inspect failed content**: Check that there are no issues with the underlying content (i.e., Data Blocks, Data Objects). Ensure that all settings are correctly configured for the Smart Doc and each Smart Page.
