

Show HN: Proof of concept – Realtime single page apps - jondubois
https://github.com/socketcluster/sc-sample-inventory

======
trestletech
That's really nice. I had faced a similar problem a while back and didn't
solve the network layer as neatly as you have. But one feature I would miss
from this implementation is event "bubbling."

My approach is here:
[https://www.npmjs.com/package/giza](https://www.npmjs.com/package/giza) . It
would just parallel your storage engine (whatever that is) and not the rest of
the project. But I'd encourage you to consider how to subscribe to a channel
hierarchy. I find that many of the event-driven projects I touch have at least
some components that can be more neatly modeled under a bubbling pub/sub
system like this.

------
virgil_disgr4ce
Curious what OP's general thoughts on Meteor are—obviously this is more
modular and less tied to a specific (arguably monolithic) design model. It'd
be really nice if [ungendered personal pronoun] made an ultra-simple
walkthrough tutorial a la Meteor's ;)

------
Aeolun
Oh, this is great! I'd been trying to get started with SocketCluster, but I
didn't have much to go on. I could figure out lots of things, but examples are
great!

------
mariopt
The Proof of concept isn't new, having in consideration MeteorJs and other
recent frameworks.

~~~
zamalek
If you take the time to read the wall-of-text you'll find out that it's based
on pub/sub and not RPC-esque like Meteor (which he also acknowledges in his
wall-of-text). New? Probably not. Valuable? Not sure, pubsub is expensive but
when you need it you really need it.

~~~
jondubois
Well observed. The problem with client to server RPC is that it's difficult to
scale horizontally. When using pub/sub, on the other hand, you are giving
control to your data consumers (frontend clients) so you don't run into issues
of having to get references to specific users from your server (what if that
user is connected to a different process/machine and not the current
process?). I did a presentation a few weeks ago at my local JS meetup group
which explained the issue better:
[http://slides.com/grosjona/realtime#/](http://slides.com/grosjona/realtime#/)

~~~
jondubois
I'm not sure about the details of Meteor's RPC implementation so I can't
comment on it specifically.

