In some cases we walk into insert conflicts or update conflicts. With products (EcoResProduct) for instance. When the message is processed in more than one company the parallel processing will cause errors by trying to insert the same record at the same time in the same table.
My suggestion would be to give an escape for this situation.
When there is a message for a global table it should not be processed by each company but just one company.
Right now this can be realised with a condition, but it could be a parameter on the message or task.
More important thing is that the next task (task2, probably creating the released product) should not start before the message with the "global process" in task1 is done. Otherwise when that task starts in company B while the creation of ecoresproduct is busy in company A, it will result in errors by missing the product for the current released product as the task in company A has not yet created that product. Especially when using the company group there is no escape from such behavior. We experienced that in interfaces and in data migration as well.