ASRS · 2024 · Addverb Technologies · Ankenpally, Hyderabad

MRF — 5-Deep 9-Level ASRS Solution

Delivered a dense 5-deep, 9-level Automated Storage & Retrieval System for MRF's high-volume tyre manufacturing plant — Java-based microservices orchestrating cranes, shuttles and third-party hardware behind a unified WCS.

RoleSoftware Development Engineer
Timeline2024
Scale500+ daily transactions
ImpactUAT 6+ wks → 3 wks · ~₹15L saved

Problem

MRF's plant required a high-density ASRS: 5 pallets deep × 9 levels high, fed by heterogeneous third-party hardware (cranes, shuttles, conveyors) with strict put-away and retrieval SLAs. The integration surface area was large and client timelines were tight.

My Contribution

Tech Stack

High-Level Design

flowchart LR
  WMS["WMS / ERP"] --> WCS["WCS Orchestrator
(Spring Boot)"] WCS --> INV["Inventory
Service"] WCS --> LOC["Location
Strategy"] WCS --> CR["Crane Controller"] WCS --> SH["Shuttle Controller"] WCS --> CV["Conveyor Controller"] CR <--> HW1["Crane HW"] SH <--> HW2["Shuttle HW"] CV <--> HW3["Conveyor HW"] WCS --> Q[(RabbitMQ)] Q --> AUD[("Audit / Events
(MySQL)")] WCS --> DASH["Grafana"]

Low-Level Design — Put-Away for 5-Deep Lane

sequenceDiagram
  autonumber
  participant W as WMS
  participant O as WCS Orchestrator
  participant L as Location Strategy
  participant C as Crane Controller
  participant S as Shuttle Controller
  participant I as Inventory

  W->>O: putAway(pallet, SKU, qty)
  O->>L: pickLocation(SKU, depth=5, level=9)
  L-->>O: aisle/level/depth slot
  O->>C: moveTo(slot)
  C-->>O: cranePositioned
  O->>S: push(pallet, depth)
  S-->>O: storedAtDepth
  O->>I: commit(slot, pallet)
  I-->>O: ok
  O-->>W: putAway.completed
                
Why 5-deep is hard: retrieval of a rear pallet requires temporarily evacuating the front ones — location strategy must balance FIFO, SKU affinity and re-handling cost. We encoded this as a scored candidate set before committing a slot.

Impact