nddrylliog/agora2 — comment on commit 78a4013e9fee62c3142a233c8bca6feac230e0e8
File: javascripts/agora.coffee line 28
By romac:

You're right, my approach was not taking account of the real-time part. I like your idea.
Now, what do we load from the database at first ?
Only the cats and 20 threads per cat, leaving the posts to be requested when the user will open a thread ?
Then use Websockets to send the client incremental diffs of the database, which will get merged within Taffy ?
Now, when do we know we need to query the database for the missing informations ? When Taffy doesn't return any results ?
Then, how do we tell the database something happened ? Via the API or via Websockets ?
Then, each time the server receive an event from the client, it'll have to know who to sell the diff to, but that shouldn't be much of a problem.

Wow, that's quite a bunch of open questions and you're not meant to answer them all, you know. I'll do some tests and see how this approach works. But it's gonna take gonna take quite longer than the 'not real-time' solution.

Also, I have a website to craft for a client, starting on thursday. That'll take ~ two full days, then I have some homework for the EPFL to do. Which means I won't be able to contribute that much to the project by then.

Now the question is:
Do we go full real-time and implement the aforementioned solution (which is very elegant and a nice programming challenge), or do we only build something useful but not real-time which we'll be able to deploy next week ?