Sevendyne
Engineering firm · Since 2016
Technical one-pager

TLMS — Cross-border logistics platform

Region: Malaysia & Singapore Stack: Laravel · Vue · Redis queues · MySQL Load: Thousands of live shipments/day

Field apps were deadlocking the MySQL core on synchronous writes. We re-architected ingestion as idempotent Laravel queue workers with per-shipment locks.

LaravelVue.jsQueue workersPusherIdempotent jobs

Sync API convoy

Mobile/desktop scans hit REST → multi-table MySQL updates in one HTTP request. Peak freight hours caused row locks on shipments, sync backlogs, and dropped packets between field and core.

Field → queue → core

API validates, enqueues, returns 202 Accepted. Workers own joins, billing hooks, and cross-border status. Monotonic sequence per shipment prevents MY/SG drift.

Why queues

OptionFailure modeOur fix
Sync RESTDeadlocks on batch scansSingle-writer job per shipment ID
Dual-write hubsCross-border driftEvent log + ordered propagation
SPA → DBNo back-pressureRate limits + scale workers on depth

API never blocks on billing

ProcessShipmentScan::dispatch($payload)
  ->onQueue('scans')->afterCommit();
return response()->json(['status' => 'queued'], 202);

// Worker: lockForUpdate on shipments, ordered table locks

Results

  • Thousands of active multi-point shipments daily
  • 100% reduction in MySQL deadlock errors on scan ingestion (90-day window)
  • Telemetry across web admin, driver mobile, desktop sync

Niaga Prestasi / TLMS programme. Metrics from production monitoring.