WES Services Architecture

Task Execution Service

architecture-beta
    group api(cloud)[API Layer]
    group orchestration(server)[Task Orchestration]
    group execution(server)[Execution Engine]
    group data(database)[Data Layer]

    service restApi(server)[REST API] in api
    service mobileApi(server)[Mobile API] in api
    service websocket(server)[WebSocket] in api

    service taskOrch(disk)[Task Orchestrator] in orchestration
    service queueMgr(disk)[Queue Manager] in orchestration
    service assignmentEngine(disk)[Assignment Engine] in orchestration
    service priorityEngine(disk)[Priority Engine] in orchestration

    service executor(disk)[Task Executor] in execution
    service validator(disk)[Task Validator] in execution
    service tracker(disk)[Progress Tracker] in execution
    service metrics(disk)[Metrics Collector] in execution

    service taskDb(database)[Task Database] in data
    service stateStore(database)[State Store] in data
    service eventStream(queue)[Event Stream] in data

    restApi:B --> T:taskOrch
    mobileApi:B --> T:taskOrch
    websocket:R --> L:tracker

    taskOrch:R --> L:queueMgr
    taskOrch:B --> T:assignmentEngine
    taskOrch:R --> L:priorityEngine

    taskOrch:B --> T:executor
    executor:R --> L:validator
    executor:B --> T:tracker
    executor:R --> L:metrics

    executor:B --> T:taskDb
    tracker:B --> T:stateStore
    executor:B --> T:eventStream

Pick Execution Service

architecture-beta
    group mobile(cloud)[Mobile Interface]
    group picking(server)[Picking Engine]
    group optimization(server)[Path Optimization]
    group data(database)[Data Storage]

    service mobileApp(server)[Mobile App API] in mobile
    service scanner(server)[Scanner Service] in mobile
    service voice(server)[Voice Picking] in mobile

    service pickEngine(disk)[Pick Engine] in picking
    service batchPicking(disk)[Batch Picking] in picking
    service zonePicking(disk)[Zone Picking] in picking
    service wavePicking(disk)[Wave Picking] in picking
    service putWall(disk)[Put Wall Manager] in picking

    service pathOptimizer(disk)[Path Optimizer] in optimization
    service tspSolver(disk)[TSP Solver] in optimization
    service heatmap(disk)[Heatmap Analyzer] in optimization
    service congestion(disk)[Congestion Manager] in optimization

    service pickDb(database)[Pick Database] in data
    service sessionStore(database)[Session Store] in data
    service metricsDb(database)[Metrics DB] in data

    mobileApp:B --> T:pickEngine
    scanner:B --> T:pickEngine
    voice:B --> T:pickEngine

    pickEngine:R --> L:batchPicking
    pickEngine:B --> T:zonePicking
    pickEngine:R --> L:wavePicking
    pickEngine:B --> T:putWall

    pickEngine:B --> T:pathOptimizer
    pathOptimizer:R --> L:tspSolver
    pathOptimizer:B --> T:heatmap
    pathOptimizer:R --> L:congestion

    pickEngine:B --> T:pickDb
    pickEngine:R --> L:sessionStore
    pathOptimizer:B --> T:metricsDb

Pack & Ship Service

architecture-beta
    group station(cloud)[Packing Station]
    group packing(server)[Packing Logic]
    group shipping(server)[Shipping Integration]
    group data(database)[Data Layer]

    service stationUi(server)[Station UI] in station
    service scannerApi(server)[Scanner API] in station
    service scaleApi(server)[Scale Integration] in station
    service printerApi(server)[Label Printer] in station

    service packEngine(disk)[Pack Engine] in packing
    service cartonSelect(disk)[Carton Selection] in packing
    service voidFill(disk)[Void Fill Calculator] in packing
    service validation(disk)[Pack Validator] in packing
    service quality(disk)[Quality Check] in packing

    service shipEngine(disk)[Ship Engine] in shipping
    service carrierInt(disk)[Carrier Integration] in shipping
    service labelGen(disk)[Label Generator] in shipping
    service manifest(disk)[Manifest Creator] in shipping

    service packDb(database)[Pack Database] in data
    service shipDb(database)[Ship Database] in data
    service eventBus(queue)[Event Bus] in data

    stationUi:B --> T:packEngine
    scannerApi:B --> T:packEngine
    scaleApi:R --> L:validation
    printerApi:R --> L:labelGen

    packEngine:R --> L:cartonSelect
    packEngine:B --> T:voidFill
    packEngine:R --> L:validation
    packEngine:B --> T:quality

    packEngine:B --> T:shipEngine
    shipEngine:R --> L:carrierInt
    shipEngine:B --> T:labelGen
    shipEngine:R --> L:manifest

    packEngine:B --> T:packDb
    shipEngine:B --> T:shipDb
    packEngine:B --> T:eventBus

Physical Tracking Service

architecture-beta
    group tracking(cloud)[Tracking Interface]
    group movement(server)[Movement Engine]
    group location(server)[Location State]
    group data(database)[Storage]

    service rtls(server)[RTLS Integration] in tracking
    service rfid(server)[RFID Gateway] in tracking
    service mobile(server)[Mobile Tracking] in tracking

    service moveEngine(disk)[Movement Engine] in movement
    service lpManager(disk)[License Plate Mgr] in movement
    service transferMgr(disk)[Transfer Manager] in movement
    service auditTrail(disk)[Audit Trail] in movement

    service locationState(disk)[Location State] in location
    service occupancy(disk)[Occupancy Manager] in location
    service availability(disk)[Availability Engine] in location
    service reconciliation(disk)[Reconciliation] in location

    service trackingDb(database)[Tracking DB] in data
    service stateDb(database)[State Database] in data
    service historyDb(database)[History Store] in data
    service eventStream(queue)[Event Stream] in data

    rtls:B --> T:moveEngine
    rfid:B --> T:moveEngine
    mobile:B --> T:moveEngine

    moveEngine:R --> L:lpManager
    moveEngine:B --> T:transferMgr
    moveEngine:R --> L:auditTrail

    moveEngine:B --> T:locationState
    locationState:R --> L:occupancy
    locationState:B --> T:availability
    locationState:R --> L:reconciliation

    moveEngine:B --> T:trackingDb
    locationState:B --> T:stateDb
    auditTrail:B --> T:historyDb
    moveEngine:B --> T:eventStream

WES Orchestration Engine

architecture-beta
    group api(cloud)[Orchestration API]
    group workflow(server)[Workflow Engine]
    group coordination(server)[Service Coordination]
    group monitoring(database)[Monitoring]

    service orchApi(server)[Orchestration API] in api
    service admin(server)[Admin Console] in api
    service designer(server)[Workflow Designer] in api

    service workflowEngine(disk)[Workflow Engine] in workflow
    service bpmn(disk)[BPMN Engine] in workflow
    service stateMachine(disk)[State Machine] in workflow
    service sagaOrch(disk)[Saga Orchestrator] in workflow

    service serviceCoord(disk)[Service Coordinator] in coordination
    service taskDispatch(disk)[Task Dispatcher] in coordination
    service eventRouter(disk)[Event Router] in coordination
    service compensator(disk)[Compensator] in coordination

    service metrics(database)[Metrics Store] in monitoring
    service tracing(database)[Distributed Tracing] in monitoring
    service alerting(database)[Alert Manager] in monitoring
    service dashboard(server)[Monitoring Dashboard] in monitoring

    orchApi:B --> T:workflowEngine
    admin:B --> T:workflowEngine
    designer:B --> T:bpmn

    workflowEngine:R --> L:bpmn
    workflowEngine:B --> T:stateMachine
    workflowEngine:R --> L:sagaOrch

    workflowEngine:B --> T:serviceCoord
    serviceCoord:R --> L:taskDispatch
    serviceCoord:B --> T:eventRouter
    sagaOrch:R --> L:compensator

    workflowEngine:B --> T:metrics
    serviceCoord:B --> T:tracing
    workflowEngine:R --> L:alerting
    metrics:T --> B:dashboard