Durable workflows are just distributed state machines. The complexity is there because guaranteeing a machine will always be available is impossible.