graph LR
place0(["new"])
place1(("backlogged"))
place2(("processing"))
place3(("failed"))
place4(("completed"))
place0-->|"start_process"|place2
place1-->|"retry"|place2
place2-->|"temp_error"|place1
place2-->|"permanent_error"|place3
place2-->|"complete_without_error"|place4