Hi Maciej,
One small problem.
If the parent of an execution is null, as it is a process instance, and the key of this execution is not null. The result of generated id is 'processDefinitionId' + '.' + 'key'. This will cause the super and sub process instance has same id. It will cause database exception, because the id column has unique constraint.
So if we want to set key from super process instance to sub process instance, we should change the strategy of the DbidGenerator.