Title covers my question - as each task is fired within a process what is Activiti's dB persistence strategy? Does Activiti provide process recovery in case of restart or do the developers need to provide a solution?
Activiti supports recovery in case of error/restart by being a transactional state machine at the lowest level. In case of error, the transaction will roll back to the previous consistent state, which is a wait state (eg a user task)
Can you just give a pointer on how to use this persistence feature. I didnt see any documentation regarding this. Please note that I am not talking about recovery within the BPM. I am looking for recovery, incase the Activiti itself crashes in between the execution of a bpm, so that it can be resumed later.
If Activiti crashes, the database will rollback the transaction that Activiti was executing, hence restoring the state of the business process to the previously stable state. If you are using Activiti in a persistent way (ie. if you are using the services http://activiti.org/userguide/index.html#N1023F, this is the behaviour of the engine.