I need to send (duplicate) traffic from one machine (port) and to two different machines (ports). I need to take care of TCP session as well.

In the beginnig I used em-proxy (http://docs.engineyard.com/em-proxy.html), but it seems to me that the overhead is quite large (it goes over 50% of cpu).
Then I installed haproxy (http://haproxy.1wt.eu/) and I managed to redirect traffic (not to duplicate). The overhead is reasonable (less than 5%).

The problem is that I could not say in haproxy config file the following:
- listen on specific address:port and whatever you find send on the two different
machines:ports and discard the answers from one of them.

Em-proxy code for this is quite simple, but it seems to me that EventMachine generates
a lot of overhead.

Before I dig in haproxy code and try to change (duplicate traffic) I would like
to know is there something similar out there?

tee-proxy is a reverse proxy. For each incoming request, it clone the request into 2 requests, forward them to 2 servers. The results from server a is returned as usual, but the results from server b is ignored.