

Racer: Synchronised models/data on Node.js and the client - davej
http://blog.nateps.com/announcing-racer-experimental-realtime-model

======
courtewing
How is this different than NowJS (<http://nowjs.com/>)? I don't mean to imply
that two similar modules cannot exist; I am just curious if there is some
fundamental difference between the two or if Racer is just a project that
isn't as far along.

~~~
davej
NowJS is a framework for building realtime web apps (that doesn't do model
synchronisation).

Racer is real-time model synchronisation.

Fundamentally they are completely different. They happen to use similar
technology stacks and both contain the word 'realtime' but they are completely
different projects. They actually might work quite well as compliments to each
other.

------
davej
I came across this project yesterday. It's obviously very early days for this
particular project but I submitted it to HN because I thought client/server
data synchronisation might be an interesting topic for discussion.

~~~
ynniv
It absolutely is, but "in active development" is to me another word for
useless. SproutCore has been in production as MobileMe for three years and it
still has difficult bugs. Let's see some source code, or implementation
details - something worth talking about. All the page has right now are pretty
words and broken demos.

And FWIW an implementation in nodejs isn't useful to most people. It's a cool
proof of concept, but since nodejs isn't an everyday environment for web
development, popularity will come by way of a clone in ruby or python.

~~~
davej
> Let's see some source code...

The project is on Github, it's linked in the article:
<https://github.com/codeparty/racer>

------
toddh
Doesn't publish and subscribe handle sync between multiple objects?

~~~
ynniv
Only if there are no write conflicts.

~~~
toddh
The way I've handled that in the past to have a bit map for every attribute so
the object owner can indicate which properties have changed, in some cases one
side or the other is the owner of that attribute so it is accepted by default,
sequence numbers can resolve other conflicts, and then custom merge logic can
resolve others. Works perfectly.

------
fuzzythinker
I know this is extremely new, but can anyone who've used it care to give some
thoughts?

