@startuml !pragma teoz true !theme cerulean skinparam backgroundColor white autonumber "[0]" actor User as user participant "mod-data-import" as mdi participant "mod-srm" as srm participant "mod-srs" as srs participant "mod-inventory" as inv participant "mod-inventory-storage" as invs user -> srm: create job definition (profile type DELETE) activate srm srm -> srm: create job srm --> user: jobId deactivate srm user -> mdi: upload MARC for jobId activate mdi mdi -> mdi: split to chunks, store in memory mdi -> srm: <> activate srm {start} mdi --> user: job started deactivate mdi srm -> srs: <> deactivate srm activate srs srs -> srs: lookup MARC_AUTHORITY record alt MARC_AUTHORITY record found activate srs srs -> srs: <> srs -> srs: delete MARC_AUTHORITY record srs -> inv: <> activate inv inv -> invs: OKAPI: delete corresponding AUTHORITY activate invs note right warning: no rollback here (potential inconsistency if process breaks in the middle) end note invs --> inv: deletion result deactivate invs alt success inv -> srm: <> activate srm srm -> srm: update job progress deactivate srm else failed inv -> srm: <> activate srm srm -> srm: update job progress deactivate srm end deactivate inv deactivate srs else not found srs -> srm: <> activate srm srm -> srm: update job progress deactivate srm end deactivate srs @enduml