{"action":"created","issue":{"url":"https://api.github.com/repos/serilog/serilog/issues/615","labels_url":"https://api.github.com/repos/serilog/serilog/issues/615/labels{/name}","comments_url":"https://api.github.com/repos/serilog/serilog/issues/615/comments","events_url":"https://api.github.com/repos/serilog/serilog/issues/615/events","html_url":"https://github.com/serilog/serilog/issues/615","id":123378132,"number":615,"title":"ObservableSink \"unnecessarily\" complex?","user":{"login":"jbattermann","id":828,"avatar_url":"https://avatars.githubusercontent.com/u/828?v=3","gravatar_id":"","url":"https://api.github.com/users/jbattermann","html_url":"https://github.com/jbattermann","followers_url":"https://api.github.com/users/jbattermann/followers","following_url":"https://api.github.com/users/jbattermann/following{/other_user}","gists_url":"https://api.github.com/users/jbattermann/gists{/gist_id}","starred_url":"https://api.github.com/users/jbattermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbattermann/subscriptions","organizations_url":"https://api.github.com/users/jbattermann/orgs","repos_url":"https://api.github.com/users/jbattermann/repos","events_url":"https://api.github.com/users/jbattermann/events{/privacy}","received_events_url":"https://api.github.com/users/jbattermann/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-12-21T23:06:52Z","updated_at":"2015-12-22T09:45:08Z","closed_at":null,"body":"Hey there,\r\n\r\nI was just about to write my own RX based Sink but first checked whether Serilog already has one.. [which it does](https://github.com/serilog/serilog/blob/dev/src/Serilog/Sinks/Observable/ObservableSink.cs).. but I was wondering whether there's any particular reason why the subscriber management is managed by the sink itself & not by using a RX native Subject<LogEvent> (i.e. like this https://gist.github.com/jbattermann/3668c0d52bb1b7892fbe#file-observablesink-cs-L18 for observer subscription & https://gist.github.com/jbattermann/3668c0d52bb1b7892fbe#file-observablesink-cs-L29 for the LogEvent forwarding).\r\n\r\nJust wondering as [Subject < T >](https://msdn.microsoft.com/en-us/library/hh242970(v=vs.103).aspx) provides a stable / well tested (un)subscription mechanism and proper disposal/stream-completion handling when disposed itself.\r\n\r\nThe Subject < T > class is part of the RX package and not part of the BCL as IObservable/IObserver are, but maybe its worth extracting the current ObservableSink into its own package outside the serilog main package for 2.x and simplify it in that regards.\r\n\r\nIf you think this might make maintaining it a bit easier just let me know and I'll gladly take care of it.\r\n\r\n\r\nCheers,\r\n-J"},"comment":{"url":"https://api.github.com/repos/serilog/serilog/issues/comments/166568661","html_url":"https://github.com/serilog/serilog/issues/615#issuecomment-166568661","issue_url":"https://api.github.com/repos/serilog/serilog/issues/615","id":166568661,"user":{"login":"jbattermann","id":828,"avatar_url":"https://avatars.githubusercontent.com/u/828?v=3","gravatar_id":"","url":"https://api.github.com/users/jbattermann","html_url":"https://github.com/jbattermann","followers_url":"https://api.github.com/users/jbattermann/followers","following_url":"https://api.github.com/users/jbattermann/following{/other_user}","gists_url":"https://api.github.com/users/jbattermann/gists{/gist_id}","starred_url":"https://api.github.com/users/jbattermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbattermann/subscriptions","organizations_url":"https://api.github.com/users/jbattermann/orgs","repos_url":"https://api.github.com/users/jbattermann/repos","events_url":"https://api.github.com/users/jbattermann/events{/privacy}","received_events_url":"https://api.github.com/users/jbattermann/received_events","type":"User","site_admin":false},"created_at":"2015-12-22T09:45:07Z","updated_at":"2015-12-22T09:45:07Z","body":"Ahh oh my - sorry for the duplicate -.- The same argument still applies though and nothing really has changed since then: \"no one\" consumes observables without RX but at the same time there's no specific *need* now to change anything, now.. or anytime soon.. nor will it greatly *improve* serilog or its maintainability.\r\n\r\nThe only argument for the split out of core and change from custom observer management to RX native one *now* would be v2 being around the corner, somewhat, and #344"}}