Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Preliminary States - ensure we have good data to propagate requests in downstream systems
SUBMITTED_TO_DCB
PATRON_VERIFIED
RESOLVED
Circulation Tracking - to track and synchronise downstream systems
REQUEST_PLACED_AT_SUPPLYING_AGENCY
CONFIRMED
REQUEST_PLACED_AT_BORROWING_AGENCY
PICKUP_TRANSIT
RECEIVED_AT_PICKUP
READY_FOR_PICKUP
LOANED
RETURN_TRANSIT
Finishing States - to terminate and clean up traces of finished requests where possible
Preliminary Finishing
NOT_SUPPLIED_CURRENT_SUPPLIER
NO_ITEMS_AVAILABLE_AT_ANY_AGENCY→ NO_ITEMS_SELECTABLE_AT_ANY_AGENCY
Circulation FInishingFinishing
CANCELLED
Happy Path Finishing
COMPLETED
FINALISED
Unexpected Termination
ERROR
...
DCB STATE | Max backoff / Next Poll interval / Next Step
| Max backoff / Next Poll interval / Next Step
| NOT USED | What tracking for next step in 2l process | What tracking for next step in 3l process | |
---|---|---|---|---|---|---|
None | None | Auto Triggers ValidatePatronTransition Moves us to PATRON_VERIFIED | ||||
None | None | Auto Triggers PatronRequestResolutionStateTransition Moves us to RESOLVED | ||||
None | None | Auto Triggers PlacePatronRequestAtSupplyingAgencyStateTransition Moves us to REQUEST_PLACED_AT_SUPPLYING_AGENCY |
...
DCB STATE | Max backoff / Next Poll interval / Next Step
| Max backoff / Next Poll interval / Next Step
| ||
---|---|---|---|---|
| What tracking for next step in 2l process | What tracking for next step in 3l process | ||
REQUEST_PLACED_AT_SUPPLYING_AGENCY | 10ms | 10ms | wait for SupplierRequest= CONFIRMED | TRANSIT → HandleSupplierRequestConfirmed Moves us into the CONFIRMED state | |
CONFIRMED | 10m | 10m | Auto Triggers PlacePatronRequestAtBorrowingAgencyStateTransition Moves us to REQUEST_PLACED_AT_BORROWING_AGENCY | |
REQUEST_PLACED_AT_BORROWING_AGENCY | 10m | 1h | wait for SupplyingItem State = TRANSIT -> HandleSupplierInTransit Moves us to PICKUP_TRANSIT | |
PICKUP_TRANSIT | 10m | 1h | wait for BorrowingItem = RECEIVED | LOANED | ON_HOLD_SHELF Then HandleBorrowerItemReceived moves us to RECEIVED_AT_PICKUP | |
RECEIVED_AT_PICKUP | 10m | 1h | wait for BorrowingItem = ON_HOLD_SHELF | LOANED Then HandleBorrowerItemOnHoldShelf moves us to READY_FOR_PICKUP | |
READY_FOR_PICKUP | 10m | 1h | wait for BorrowingItem = LOANED Then HandleBorrowerItemLoaned moves us to LOANED | |
LOANED | 10m | 6h | wait for BorrowingItem = AVAILABLE | TRANSIT HandleBorrowerRequestReturnTransit moves us to RETURN_TRANSIT N.b. CLOSED==FOLIO Specific N.b. Additional check needed here - item loaned other | |
RETURN_TRANSIT | 10m | 1h | SupplierItem = AVAILABLE | SupplierRequest=CLOSED Then HandleSupplierItemAvailable moves us to COMPLETED N.b. CLOSED==FOLIO Specific N.b. Additional check needed here - item loaned other |
Finishing States
When a request completes its cycle, or if it terminates prematurely, it enters a finishing state.
...
DCB STATE | Max backoff / Next Poll interval / Next Step
| Max backoff / Next Poll interval / Next Step
| title | NOT USEDWhat tracking for next step in 2l process | What tracking for next step in 3l process | |
---|---|---|---|---|---|---|
Preliminary Finishing (follows a preliminary state before a request enters tracked circulation) | ||||||
NOT_SUPPLIED_CURRENT_SUPPLIER | None | None | Auto Triggers: ResolveNextSupplierTransition Moves us to NO_ITEMS_AVAILABLESELECTABLE_AT_ANY_AGENCY | |||
NO_ITEMS_AVAILABLE_AT_ANY_AGENCY → NO_ITEMS_SELECTABLE_AT_ANY_AGENCY | None | None | TERMINAL STATE (For now) | |||
Circulation Finishing (interrupts tracked circulation, and is typically manually instigated) | ||||||
CANCELLED | None | None | Auto Triggers: FinaliseRequestTransition moves us to FINALISED | |||
Happy Path Finishing (follows directly after the end of tracked circulation) | ||||||
COMPLETED | None | None | Auto Triggers: FinaliseRequestTransition moves us to FINALISED | |||
FINALISED | None | None | TERMINAL STATE | TERMINAL STATE | ||
Unexpected Termination (can happen at any stage) | ||||||
ERROR | None | None | TERMINAL STATE | TERMINAL STATE |
...