will the ExecutionId coming from interactive brokers be unique? how about partial fills, does it send different Executionid's? public virtual void execDetails(int reqId, Contract contract, Execution execution)
This is unrelated to asset class. Each fill, either partial or full, gets a unique execution ID. I'm not sure why this is being done. Maybe for traceability reasons.
As HobbyTrading correctly stated, each fill gets a unique execution Id, and you may get multiple Executions Id if there are partial fills or fills from different market makers. Furthermore, for each execution record that you receive from execDetails(), there will be a corresponding call to your commissionReport( CommissionReport commissionReport ) function, and the only way to match the commissionReport to the corresponding execution is via the execution Id since the commissionReport does not include a symbol.