Shared data architectures

From: Rowan 9 Sep 2012 08:47
To: Peter (BOUGHTONP) 16 of 20

I've not used the word collaboration (as I suspect it has some specific technical meaning). IM clients do have shared/synchronised state, though - the presence data is a better example than the actually chat, as it's not append-only. Consider a user logged in to the same account on multiple clients and they change their name on one; all the clients can change that state, and as soon as one does, the change propagates to the others.

 

I don't understand how to answer your second question. I have no actual need to solve this problem, I'm merely interested.

From: Rowan 9 Sep 2012 08:58
To: Drew (X3N0PH0N) 17 of 20

Okay, so that operation transformation thing looks like it's just a jargon-heavy way of consistently serialising the kind of commands I suggested in my first post.

 

I guess that's just the way everyone tackles this sort of thing, 'cos it's simpler, and there's no real reason not to at this scale. Ho hum.

From: CHYRON (DSMITHHFX) 9 Sep 2012 12:26
To: Rowan 18 of 20
I was thinking about this last night, and two, probably irrelevant buzzwords popped into my head: cloud, and cluster.
From: DSLPete (THE_TGG)13 Sep 2012 23:10
To: Rowan 19 of 20

Along the lines of AMQP, take a look at www.rabbitmq.com It's a doddle to set up, lightning quick (we regularly run at ~80,000 messages/sec between Europe and the US over the public internet), will run in RAM or on disk and supports quite a few message distribution models, including allowing an ad-hoc number of consumers to connect and receive messages - so each client would just register its own queue update consumer when it was fired up, and when an update is made in a client it could be published out to all.

 

It's worth doing the 6 tutorials so you can see just what it can do - a solution may present itself to you.

From: Rowan14 Sep 2012 08:20
To: DSLPete (THE_TGG) 20 of 20
Yeah, I've looked at RabbitMQ in the past (and I suspect it's much nicer than Apache's ActiveMQ which is the only AMQP thingum I've used). It has a nice site of friendly client-side libraries, too, for various languages, so it'd probably be what I'd plump for if I went that route.

It only takes care of the messaging part, though; I feel like there should be something out there that builds a layer on top of this and automagically syncs data. Nothing quite seems to fit the bill, though.