Form-definition path
TALA Flow stores projects, schemas and versions in Laravel/PostgreSQL. Large XLSForm uploads can be sent to go-xlsform, which streams the requested worksheet once and returns NDJSON row/progress frames. Laravel remains responsible for validation, schema creation and persistence.
Collection paths
TALA Flow supports more than one collection surface:
- Browser/public collection through the
/api/v1/public/collectendpoints. - OpenRosa-compatible collection through
/api/v1/orx/{token}for ODK/Kobo-style clients. - Mobile form submissions carried through the Campaign sync path where the form is embedded in field workflows.
All paths converge on governed submission records rather than creating separate untraceable datasets.
Submission and correction
Submissions, media, repeat data, edits and anomaly/review state remain in the application data model. Corrections should create an auditable revision/edit path rather than silently overwriting historical evidence.
Export path
For large exports Laravel creates a bulk_operations record and go-report performs the heavy streaming work. This keeps the web request responsive and bounds memory use.