they're also allowed to talk to the external world
saga supports storing "position pointer", to be restored back to (skipping all executed actions) if its restarted
a saga can be replayed to the exact position it was in before it was stopped, so that it can continue
Position pointer
Can be implemented as several types of execution ranges:
retry-able context - starting stores the position, ending marks that its finished. on restarting a saga if the last such range is not finished it will be started again.
ignore-able context - starting stores the position, ending marks that its finished. on restarting a saga if the last such range is not finished the saga will skip this range and proceed to the end immediately
critical context - starting stores the position, ending marks that its finished. on restarting a saga if the last such range is not finished the saga will fail to start
Automating commands based on previous events