Control plane in Laravel
Laravel accepts the upload, validates the user and requested module, creates the bulk_operations row and records the storage disk/path. Eligible jobs are tagged for the Go import engine when GO_BULK_IMPORT_ENABLED=true.
Worker path
go-bulk-import claims pending operations, reads the file from shared application storage or S3, processes rows in the background, updates heartbeat/progress, and records completion or failure.
The current worker supports heavy import paths including geography hierarchy, users, waybill/stock shipment data and beneficiary/household data.
Shared-storage requirement
When local disk is used, Laravel stores a disk-relative path below storage/app. The Go worker must mount the same volume and use the same storage root. A different working directory produces “file not found” even though the upload succeeded.
Safe fallback
Set GO_BULK_IMPORT_ENABLED=false to return eligible imports to the Laravel path. Keep this fallback tested rather than discovering it during a production incident.