Returns processing workflow with SWITCH: receive, inspect, then refund/exchange/reject
Input: orderId, returnReason, items, customerId | Timeout: 60s
ret_receive
│
ret_inspect
│
return_decision [SWITCH]
├─ refund: ret_refund
├─ exchange: ret_exchange
└─ reject: ret_reject
ExchangeWorker (ret_exchange)
Reads returnId. Outputs exchangeOrderId, exchanged.
InspectReturnWorker (ret_inspect)
Reads returnId, returnReason. Outputs condition, decision, refundAmount, rejectReason.
ReceiveReturnWorker (ret_receive)
Reads items, orderId. Outputs returnId, receivedAt, itemCount.
RefundWorker (ret_refund)
Reads amount, customerId, returnId. Outputs refundId, refunded, amount.
RejectWorker (ret_reject)
Reads reason, returnId. Outputs rejected, reason.
12 tests cover valid inputs, boundary values, null handling, and error paths.
mvn testRun this example: see RUNNING.md for setup, build, and CLI instructions.