patching pipe() makes the most sense to me. basically just set a boolean if piped and don't push() unless this has been piped somewhere. i would assume that all the other existing backpressure semantics implemented by transform will work at that point, which is much easier than implementing _read and _write. this isn't a duplex stream that can be piped to itself, although there is some room in the body to note the source db to avoid an infinite loop in that case.