The documentation for Geth's golang contract bindings start out with
Please note, events are not yet implemented as they need some RPC subscription features that are still under review.
What subscription features are needed, in order to implement events?
I'm asking because I'd like to assess the feasibility of making golang's contract bindings a full-fledged unit testing environment for solidity, and integration testing environment for solidity/go interactions. I was able to use the bindings for a project recently, and they were great: I could run thousands of tests before truffle could even get its boots on.