When you develop Triggers you can avoid re-entrancy by keeping track of ids in static variables of your Apex Classes, however when dealing with process builders it is not obvious to me how to avoid publishing an event multiple times.
In particular, I have a branch that is executed upon these conditions:
ISNEW() || ISCHANGED([MyCustomObject__c].MyField__c)
What seems to be strange is that in the same transaction ISNEW() this branch is executed four times: one solution would be to avoid re-entrancy for the same record, but I need it for some other branch of the process builder. What is the best practice to avoid "same branch" re-entrancy?