This is using Reactive Extensions based on the IB's C# client (IB also have a C# client now - https://github.com/InteractiveBrokers/tws-api/tree/master/source/csharpclient)
It is just a wrapper which pumps events into a Subject and send events from Subject to the IB API.