| Attribute | Value |
|---|---|
| Context | Pack & Ship Service |
| Pattern | Open Host Service |
| Direction | Outbound (Process Path → Pack & Ship) |
| Protocol | Apache Kafka + REST API |
| Topics | process-path.routing.*, pack-ship.packing.* |
Process Path exposes a standardized interface for Pack & Ship Service. Process Path signals when shipments are ready for packing and provides SLA priority information. Pack & Ship consumes these signals and reports completion status.
flowchart LR
subgraph PP["PROCESS PATH"]
PRS[Pack Ready Signals]
SLA[SLA Priority]
CA[Chute Assignments]
SC[SLAM Coordination]
end
subgraph PS["PACK & SHIP"]
PSM[Pack Station Mgmt]
CS[Carrier Selection]
LG[Label Generation]
WV[Weight Verification]
end
PRS -->|PackReadyEvent| PSM
SLA -->|SLAPriorityEvent| PSM
CA -->|ChuteAssignment| PSM
WV -->|PackingCompleted| SC
LG -->|SLAMCompleted| SC
sequenceDiagram
participant PP as Process Path
participant PACK as Pack Station
participant SLAM as SLAM Station
participant SHIP as Transportation
PP->>PACK: PackReadyEvent
Note right of PP: Tote arrived<br/>SLA: GREEN
PACK->>PACK: Assign to station
PACK->>PACK: Packer retrieves item
PACK->>PACK: Pack into box
PACK->>PP: PackingCompletedEvent
Note left of PACK: Box A1 used<br/>Duration: 1m30s
PACK->>SLAM: Send to SLAM
SLAM->>SLAM: Weigh package
SLAM->>SLAM: Print & apply label
SLAM->>SLAM: Record manifest
SLAM->>PP: SLAMCompletedEvent
Note left of SLAM: Tracking: 1Z999AA1...<br/>Carrier: UPS
PP->>SHIP: Shipment ready
Purpose: Signal that shipment is ready for packing
Topic: process-path.routing.events
Pack & Ship Action: Queue for pack station assignment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"specversion": "1.0",
"type": "com.paklog.processpath.pack.ready.v1",
"source": "/process-path-service",
"id": "evt-pack-123456",
"time": "2025-01-20T10:15:00.000Z",
"subject": "SHP-123456",
"data": {
"shipmentId": "SHP-123456",
"orderId": "ORD-789012",
"pathType": "SINGLES",
"sourceLocation": {
"type": "TOTE",
"toteId": "TOTE-789",
"conveyorZone": "PACK-ZONE-A"
},
"itemCount": 1,
"slaPriority": "GREEN",
"carrierCutoffTime": "2025-01-20T16:00:00Z",
"packingInstructions": {
"recommendedBoxSize": "A1",
"requiresPadding": true,
"giftWrap": false,
"specialInstructions": null
},
"readyAt": "2025-01-20T10:15:00Z"
}
}
Purpose: Signal that AFE order is fully consolidated
Topic: process-path.routing.events
Pack & Ship Action: Pack from rebin wall chute
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"type": "com.paklog.processpath.afe.consolidation.complete.v1",
"data": {
"shipmentId": "SHP-123456",
"orderId": "ORD-789012",
"wallId": "WALL-AFE-01",
"chuteId": "CHUTE-A-45",
"itemCount": 3,
"slaPriority": "YELLOW",
"chuteLight": "YELLOW",
"packingInstructions": {
"recommendedBoxSize": "B2",
"requiresPadding": true,
"giftWrap": false
},
"consolidatedAt": "2025-01-20T10:20:00Z"
}
}
Purpose: Update pack queue priority
Topic: process-path.sla.events
Pack & Ship Action: Reprioritize in pack queue, update chute light
1
2
3
4
5
6
7
8
9
10
11
{
"type": "com.paklog.processpath.sla.escalated.v1",
"data": {
"shipmentId": "SHP-123456",
"previousPriority": "GREEN",
"newPriority": "RED",
"timeToSLACutoff": "PT25M",
"expeditedRouting": true,
"packStationOverride": "PACK-EXPRESS-01"
}
}
Purpose: Track shipment completion, update cycle time metrics
Topic: pack-ship.packing.completed
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"type": "com.paklog.packship.packing.completed.v1",
"data": {
"shipmentId": "SHP-123456",
"orderId": "ORD-789012",
"packStationId": "PACK-STATION-05",
"packerId": "WORKER-123",
"boxUsed": "A1",
"actualWeight": 1.52,
"packDuration": "PT1M30S",
"packedAt": "2025-01-20T10:17:00Z"
}
}
Purpose: Track SLAM completion, trigger shipping handoff
Topic: pack-ship.slam.completed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"type": "com.paklog.packship.slam.completed.v1",
"data": {
"shipmentId": "SHP-123456",
"orderId": "ORD-789012",
"trackingNumber": "1Z999AA10123456784",
"carrier": "UPS",
"serviceLevel": "GROUND",
"labelApplied": true,
"manifestRecorded": true,
"actualWeight": 1.52,
"slamStationId": "SLAM-01",
"slammedAt": "2025-01-20T10:18:00Z"
}
}
Purpose: Handle weight discrepancies
Topic: pack-ship.slam.weight-failed
1
2
3
4
5
6
7
8
9
10
11
12
{
"type": "com.paklog.packship.weight.failed.v1",
"data": {
"shipmentId": "SHP-123456",
"expectedWeight": 1.50,
"actualWeight": 2.10,
"variance": 0.60,
"variancePercent": 40,
"action": "DIVERT_TO_PROBLEM_SOLVE",
"failedAt": "2025-01-20T10:18:00Z"
}
}
sequenceDiagram
participant TOTE as Tote
participant PP as Process Path
participant PACK as Pack Station
participant PACKER as Packer
participant SLAM as SLAM
TOTE->>PACK: Arrives at station
PP->>PACK: PackReadyEvent
PACK->>PACKER: Assign to station
PACKER->>TOTE: Scan & retrieve item
PACK->>PACKER: Display instructions
PACKER->>PACKER: Select box & pack
PACKER->>SLAM: Send package
PACK->>PP: PackingCompletedEvent
sequenceDiagram
participant CHUTE as Rebin Chute
participant PP as Process Path
participant PACK as Pack Station
participant PACKER as Packer
participant SLAM as SLAM
Note over CHUTE: All items arrived
PP->>PACK: AFEConsolidationCompleteEvent
PP->>CHUTE: Set light (priority color)
PACKER->>CHUTE: Retrieve all items
PACK->>PACKER: Display multi-item instructions
PACKER->>PACKER: Consolidate & pack
PACKER->>SLAM: Send package
PACK->>PP: PackingCompletedEvent
PP->>CHUTE: Release for reuse
Process Path controls chute lights based on SLA priority:
| Priority | Light Color | Meaning |
|---|---|---|
| GREEN | Green | Normal priority, standard processing |
| YELLOW | Yellow/Magenta | Elevated priority, pack soon |
| RED | Red | Critical, pack immediately |
1
2
3
4
5
6
7
8
9
10
{
"type": "com.paklog.processpath.chute.light.update.v1",
"data": {
"wallId": "WALL-AFE-01",
"chuteId": "CHUTE-A-45",
"lightColor": "RED",
"reason": "SLA_CRITICAL",
"shipmentId": "SHP-123456"
}
}
Process Path provides expected weight for SLAM verification:
1
2
3
4
5
6
7
8
9
10
11
12
{
"shipmentId": "SHP-123456",
"expectedWeight": {
"itemWeight": 1.2,
"packagingWeight": 0.3,
"total": 1.5,
"varianceThreshold": {
"absolute": 0.5,
"percent": 10
}
}
}
| Outcome | Process Path Action |
|---|---|
| PASS | Mark shipment complete, update metrics |
| FAIL_WEIGHT | Route to problem solve, track exception |
| FAIL_LABEL | Retry label, escalate if persistent |
Pack & Ship reports station capacity to Process Path:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"type": "com.paklog.packship.capacity.report.v1",
"data": {
"stationType": "SINGLES",
"stations": [
{
"stationId": "PACK-STATION-01",
"status": "ACTIVE",
"queueDepth": 8,
"throughputPerHour": 180,
"workerId": "WORKER-101"
}
],
"totalActive": 12,
"totalCapacity": 15,
"utilizationPercent": 80
}
}
Process Path uses this for:
| Error | Pack & Ship Action | Process Path Action |
|---|---|---|
| Item damaged | Divert to problem solve | Update shipment status |
| Wrong item | Divert to problem solve | Investigate routing |
| Box unavailable | Select alternate size | Update packing instructions |
| Error | Pack & Ship Action | Process Path Action |
|---|---|---|
| Weight variance | Divert to reweigh | Flag for investigation |
| Label print fail | Retry, manual if needed | Track exception rate |
| Manifesting fail | Queue for retry | Alert if persistent |
| Metric | Target | Impact |
|---|---|---|
| Pack cycle time (singles) | < 2 min | Path cycle time estimate |
| Pack cycle time (multi) | < 4 min | AFE cycle time estimate |
| SLAM pass rate | > 98% | Exception handling load |
| Station utilization | 70-85% | Capacity scoring |
pack_ship_packing_completed_totalpack_ship_slam_completed_totalpack_ship_weight_failures_totalpack_ship_station_utilizationprocess_path_pack_ready_events_total