Hi Whabelitz,
A safe point is basically a point where is safe to store the process status. You can think about safe points as every time that the process engine is delegating an activity to an external entity. This external entities can be Users or Systems (asynchronous systems). So, every time a safe point is hit (User task or asynchronous call to an external system) the engine can store the current status, and that status can be recovered later.
Cheers