yes, compensation occurs when a major error in a process occurs that cannot be recovered by inline error handling e.g. Adapter Call and no running adapter. Compensation is a sub process that the main process (or individual Activity) can invoke under these conditions where you can execute an "alternative" workflow e.g. send an email to an Administrator, monitoring application, etc, to inform them that something needs to be looked at urgently.
A thing to note here is that the compensation workflow cannot take any inputs from the main workflow that invoked it (but you can set a "special" input that contains why the process compensated), however it is useful for the above purposes or to use as an alternative to the main process if something absolutely needs to be executed (remembering that it cannot take in inputs from the main process).