We used the MoP proxy, and actually created 2 PRs to fix issues we stumbled upon in the MoP proxy. The MoP proxy behaves very oddly. Like if I create an MQTT client connection to the MoP proxy, and I create 8 subscriptions, all the sudden every PINGREQ is getting 8 responses. Also if you interact frequently with the proxy, you won't send a PINGREQ because PINGREQ is only sent in absence of communication in the keep alive period. So connections often just die because PINGREQ isn't sending, and you might not be frequently communicating with a broker through the proxy, and that means the adapter channel to that broker gets closed by the broker because keep alive has been breached.
I have a bug open on MoP. We spent like a month trying to get the proxy to work, including patching it ourselves multiple times. I'm not convinced it has ever worked in a serious capacity. I'm pretty familiar with the code base at this point, and the keep alive mechanism in the proxy seems fundamentally flawed. I'm just not sure how you guys are claiming to run the MoP proxy in production, because it seems like it could not possibly work as intended. We see very odd behavior when observice with WireShark, and when connecting a remote debugger to a clustered Pulsar running MoP with MoP Proxy enabled.