Hello,<div><br></div><div>I am building a system that has multiple instances of GME (I&#39;m using 9.12.15) on different machines and mirrors the actions made by the users on each others&#39; machines.</div><div><br></div>
<div>For example, if there were two users A and B, B would see what A does on A&#39;s machine such as creating new objects, updating attributes and registries, and removing objects. A and B would eventually have the same model in their local GME instance.</div>

<div><br></div><div>I first tried to listen to ObjectEvents, transfer them over, and replay the events by developing a plugin that captures ObjectEvents and modifies the MGA model according to the captured ObjectEvents. It works, but it ruins the undo/redo architecture because it does not consider the transaction architecture.</div>

<div><br></div><div>I figured what I&#39;d ultimately like to do is to grab a transaction when it&#39;s completed, transfer it over, and execute the transaction on the other side by putting it in the transactions list.</div>

<div><br></div><div>What I wonder is how to implement it. It seems like a plugin cannot manipulate transactions as nested transactions are not allowed. When objectEventPerformed is invoked, the plugin is in the middle of a transaction, and the transaction ends after the objectEventPerformed returns.</div>

<div><br></div><div>Would it be possible to do this with a plugin, or would it not be possible to do this with a plugin?</div><div><br></div><div>Thank you very much for your help!</div><div><div><br></div>-- <br>Jae young Bang<br>

</div>