Physical Tracking Service Integration

Overview

Attribute Value
Context Physical Tracking Service
Pattern Event Streaming
Direction Inbound (Physical Tracking → Process Path)
Protocol Apache Kafka
Topics physical-tracking.movements.*

Integration Summary

Physical Tracking Service provides real-time location updates as shipments move through the fulfillment center. Process Path consumes these events for SLA monitoring, bottleneck detection, and rerouting decisions.

1
2
3
4
5
6
7
8
┌─────────────────────────┐         ┌─────────────────────────┐
│   PHYSICAL TRACKING     │         │      PROCESS PATH       │
│                         │         │                         │
│  • RFID readers         │  ─────► │  • SLA monitoring       │
│  • Barcode scanners     │ Stream  │  • Delay detection      │
│  • IoT sensors          │         │  • Progress tracking    │
│  • Computer vision      │         │  • Reroute triggers     │
└─────────────────────────┘         └─────────────────────────┘

Events Consumed

ShipmentLocationUpdatedEvent

Purpose: Track shipment progress, detect delays

Topic: physical-tracking.movements.shipments

Frequency: Every zone transition (high volume)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "specversion": "1.0",
  "type": "com.paklog.tracking.location.v1",
  "source": "/physical-tracking-service",
  "id": "evt-loc-123456",
  "time": "2025-01-20T10:10:00.000Z",
  "subject": "SHP-123456",
  "data": {
    "shipmentId": "SHP-123456",
    "containerId": "TOTE-789",
    "containerType": "TOTE",
    "currentZone": "AFE_SORTER",
    "previousZone": "AFE_INDUCT",
    "zoneEnteredAt": "2025-01-20T10:10:00.000Z",
    "dwellTimeSeconds": 0,
    "expectedNextZone": "REBIN_WALL_01",
    "expectedTransitTime": "PT5M",
    "conveyorSegment": "CONV-AFE-LOOP-A",
    "velocity": 2.5,
    "scanType": "RFID",
    "scannerId": "READER-AFE-01"
  }
}

TrayLocationUpdatedEvent

Purpose: Track AFE tray movements

Topic: physical-tracking.movements.trays

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
  "type": "com.paklog.tracking.tray.location.v1",
  "data": {
    "trayId": "st1234567890",
    "itemId": "ITEM-ABC-001",
    "shipmentId": "SHP-123456",
    "currentZone": "AFE_SORTER_LOOP",
    "position": {
      "segment": "LOOP-A-SECTION-5",
      "positionInSegment": 45
    },
    "destinationWall": "WALL-AFE-01",
    "destinationChute": "CHUTE-A-45",
    "estimatedArrival": "2025-01-20T10:15:00Z"
  }
}

DwellTimeExceededEvent

Purpose: Detect stuck or delayed shipments

Topic: physical-tracking.alerts.dwell

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "type": "com.paklog.tracking.dwell.exceeded.v1",
  "data": {
    "shipmentId": "SHP-123456",
    "containerId": "TOTE-789",
    "zone": "PACK_QUEUE",
    "dwellTimeSeconds": 600,
    "thresholdSeconds": 300,
    "severity": "WARNING",
    "possibleCauses": ["PACK_STATION_FULL", "WORKER_BREAK"],
    "detectedAt": "2025-01-20T10:20:00Z"
  }
}

AnomalyDetectedEvent

Purpose: Detect unexpected movements or misroutes

Topic: physical-tracking.alerts.anomaly

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "type": "com.paklog.tracking.anomaly.v1",
  "data": {
    "shipmentId": "SHP-123456",
    "anomalyType": "UNEXPECTED_ZONE",
    "expectedZone": "AFE_SORTER",
    "actualZone": "SINGLES_PACK",
    "assignedPath": "AFE",
    "severity": "HIGH",
    "requiresIntervention": true,
    "detectedAt": "2025-01-20T10:15:00Z"
  }
}

Zone Definitions

Physical Tracking zones mapped to Process Path stages:

Singles Path Zones

1
PICK_ZONE_A → TOTE_CONVEYOR → SINGLES_DIVERT → PACK_STATION → SLAM → SORT

AFE Path Zones

1
2
PICK_ZONE → TOTE_CONVEYOR → AFE_INDUCT → AFE_SORTER → AFE_DISCHARGE →
REBIN_WALL → PACK_STATION → SLAM → SORT

Batch/Flow Path Zones

1
PICK_ZONE → BATCH_CART → PUT_WALL → PACK_STATION → SLAM → SORT

Progress Tracking

Process Path maintains shipment progress based on location events:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "shipmentId": "SHP-123456",
  "path": "AFE",
  "progress": {
    "stages": [
      {"stage": "ROUTED", "completedAt": "2025-01-20T10:00:00Z"},
      {"stage": "PICK_STARTED", "completedAt": "2025-01-20T10:02:00Z"},
      {"stage": "PICK_COMPLETE", "completedAt": "2025-01-20T10:08:00Z"},
      {"stage": "INDUCT", "completedAt": "2025-01-20T10:10:00Z"},
      {"stage": "SORTER", "completedAt": null, "currentZone": "AFE_SORTER"},
      {"stage": "REBIN", "completedAt": null},
      {"stage": "PACK", "completedAt": null},
      {"stage": "SLAM", "completedAt": null}
    ],
    "currentStage": "SORTER",
    "progressPercent": 50,
    "onTrack": true,
    "estimatedCompletion": "2025-01-20T10:20:00Z"
  }
}

Delay Detection

Dwell Time Thresholds

Zone Normal Dwell Warning Critical
PICK_ZONE < 5 min 5-10 min > 10 min
TOTE_CONVEYOR < 2 min 2-5 min > 5 min
AFE_SORTER < 5 min 5-8 min > 8 min
REBIN_WALL < 10 min 10-15 min > 15 min
PACK_QUEUE < 5 min 5-10 min > 10 min
SLAM_QUEUE < 3 min 3-5 min > 5 min

Delay Response Actions

1
2
3
4
5
6
7
8
9
10
On DwellTimeExceededEvent (WARNING):
1. Log delay for analytics
2. Recalculate SLA risk
3. If SLA at risk → Escalate priority

On DwellTimeExceededEvent (CRITICAL):
1. Alert Operations
2. Escalate to RED priority
3. Consider rerouting if possible
4. Flag for problem solve investigation

Rerouting Triggers

Location events can trigger rerouting decisions:

1
2
3
4
5
6
7
8
9
1. Shipment in TOTE_CONVEYOR (reroutable)
2. Delay detected in destination path
3. Process Path evaluates:
   - Is alternate path faster?
   - Can shipment physically be rerouted?
   - What is the delay cost vs reroute cost?
4. If reroute beneficial:
   - Publish ShipmentReroutedEvent
   - Update routing instructions at divert point

SLA Monitoring Integration

Physical Tracking enables real-time SLA monitoring:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Shipment SHP-123456:
├── SLA Cutoff: 16:00:00
├── Current Time: 10:15:00
├── Time Remaining: 5h 45m
├── Current Stage: SORTER (50% complete)
├── Estimated Completion: 10:20:00
├── Buffer Time: 5h 40m
└── SLA Status: GREEN ✓

If Current Time = 15:30:00 and Stage = PACK:
├── Time Remaining: 30m
├── Estimated Completion: 15:40:00
├── Buffer Time: 20m
└── SLA Status: RED ⚠️ (escalate)

Anomaly Handling

Misroute Detection

1
2
3
4
5
6
7
8
9
1. Receive location event: TOTE-789 in SINGLES_PACK
2. Lookup assignment: TOTE-789 → SHP-123456 → AFE
3. Mismatch detected!
4. Publish AnomalyDetectedEvent
5. Process Path actions:
   - Alert Operations
   - Track for recovery
   - Update routing records
   - Investigate root cause

Lost Shipment Detection

1
2
3
4
5
6
7
8
1. Expected location event not received within threshold
2. Last seen: AFE_INDUCT at 10:10:00
3. Expected: AFE_SORTER by 10:15:00
4. Current time: 10:20:00
5. Actions:
   - Query Physical Tracking for last known location
   - Alert Operations for physical search
   - Suspend SLA timer pending resolution

Performance Metrics

Metric Target Description
Location event latency < 100ms Time from scan to Process Path
Zone transition accuracy > 99.5% Correct zone sequence
Dwell time accuracy < 5% variance Measured vs actual dwell
Anomaly detection rate > 95% Misroutes detected

Monitoring

Key Metrics

Alerts