1. Home
  2. Docs
  3. Architecture & scale
  4. Large XLSForm processing architecture
Architecture & scale

Large XLSForm processing architecture

How TALA Flow handles large choice sheets without loading the complete workbook into PHP memory.

Developer v2026.10 Updated 5 Nov 2026

Purpose

go-xlsform is a private, stateless accelerator for large XLSX choice sheets. It does not query PostgreSQL and does not write application data.

Request flow

  1. Laravel receives and validates the XLSForm upload.
  2. For a large worksheet, Laravel sends the file to go-xlsform over the private compose network with an internal token.
  3. The service reads the XLSX ZIP/shared strings/worksheet in a single pass.
  4. It returns NDJSON row and progress frames.
  5. Laravel consumes those frames and continues its normal validation/schema persistence path.

Resource protection

The service enforces upload size, expanded archive size, single-entry size, archive-entry count, compression ratio, row count, column count and concurrency limits. These checks protect the platform from decompression bombs and unexpectedly large workbooks.

Fallbacks

If the service is disabled or unhealthy, Laravel falls back to its local single-pass XLSX reader and finally to the PhpSpreadsheet compatibility path.

Was this page helpful?

Still stuck?

Open a ticket and reference this page — we will pick it up from there.

Open a ticket