I am currently using IB's Java API via TWS.
My strategy trades very sporatically, but when it does it's important that the trades go through or else opportunity vanishes.
Over the past year or so I've had too many failures where TWS ends up not sending my order.
The latest one has a NullPointerException in the TWS log file. These failures are not reproducable and probably due to poorly written multithreaded Java code inside TWS. By analyzing the logs I've also noticed that there is some kind of symbol lookup/handshake going on in TWS before the order is routed out. I'd like to eliminate this as well.
At this point, I've gotten my code speaking FIX pretty well. I just need to find someone who will take my order flow and not charge me thousands of dollars.