I believe what you want to do monkey patch `stream.read` and only add event listeners if somebody calls `.read()` either directly or indirectly through `.on('data')` or `pipe()`

I don't know whether streams2 has a hook for this.

Alternatively you can implement `_read` and `_write` and create a duplex with [`duplexer2`](https://github.com/deoxxa/duplexer2)

I think your stream is not actually a transform but two separate readable and writables like tcp sockets.

I'm supervised your existing transform does not end up in infinite loops.