Hi all
I know I've got a tonne of emails and posts to reply to and I'll try to get to them all, but I just wanted to share with you some good news.
My five (almost) back-to-back talks in Oslo, Lisbon, Dublin, Portland and SF are finally over - phew! For the most part they all went well and a lot more people now know about SocketStream than a few months ago. I will tweet links to the videos when they get posted and update the README.
Now all that's finally over, I can focus fully on finishing 0.4. Luckily I had a major break through last week. I realised that Live Reload and PubSub no longer need to be hard-wired into the framework - they are just modules that communicate over the websocket like everything else.
Hence I know now that the 0.4 core is going to be a fraction of the size of 0.3 and will basically just do two things really well:
1. Allow you to define Single Page Clients (and look after the serving/packing/etc using the new Streams interface)
2. Multiplex Streams over the WebSocket via a new API (likely to be called 'Services', but basically the old Request Responder idea) and deliver appropriate code to the client.
If we get this right you won't even need to use our RPC module, you'll be able to use DNode. Plus everything is 100% compatible with the Node Core Stream API. So you can take any stream and pipe() the data over the WebSocket. This is truly exciting stuff - especially as you'll be able to use Streams in the browsers too and pipe geolocation data or any other info back to the server.
Lots still to figure out and performance tune, but I'm really confident we're now heading in the right direction. Please feel free to download the 0.4 code and try out the example app. Just remember everything is still subject to change.
My next task is to reduce the amount of over-the-wire traffic (already underway) and increase performance. After that I'm going to look at Sessions and Auth. If we can crack that, we're almost done.
Let me know what you think!
Owen