-1

Background: I am working on a proposal for a PHP/web-based P2P replication layer for PDO databases. My vision is that someone with a need to crowd-source data sets up this software on a web server, hooks it up to their preferred db platform, and then writes a web app around it to add/edit/delete data locally. Other parties, if they wish, may set up a similar thing - with their own web apps written around it - and set up data-sharing agreements with one or more peers. In the general case, changes made to one database are written to another on a versioned basis, such that they eventually flow around the whole network.

Someone has asked me why I'm not using CouchDB, since it has bi-directional replication and record versioning offered as standard. I wasn't aware of these capabilities, so this turns out to be an excellent question! It occurs to me, if this facility is already available, are there any existing examples of server-to-server replication between separate groups? I've done a great deal of hunting and not found anything.

(I suppose what I am looking for is examples of "group-sourcing": give groups a means to access a shared dataset locally, plus the benefits of critical mass they would be unable to build individually, whilst avoiding the political ownership/control problems associated with the traditional centralised model.)

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
halfer
  • 19,824
  • 17
  • 99
  • 186

1 Answers1

2

You might want to check out http://refuge.io/ It is built around couchdb, but more specifically to form peer groups.

Also, here is a couchbase sponsored case study of replication between various groups http://site.couchio.couchone.com/case-study-assay-depot

This can be achived on standard couchdb installs.

Hope that gives you a start.

Ryan Ramage
  • 2,606
  • 18
  • 17
  • That's very helpful - thank you! I've not come across Refuge, but it appears we've been working on a similar idea during a similar timeframe (they're on CouchDB, I'm on PHP/PDO). I really should give their software a spin. – halfer Nov 09 '11 at 22:17
  • Incidentally, it looks like Refuge has been around for longer than I'd thought in my previous comment - a few years (judging by the commit history). Are you aware of any examples running Refuge? I think I could really learn a bit more about conflict resolution strategies, so it would be great to see stuff that's worked in the wild. – halfer Nov 10 '11 at 09:45
  • There's not much detail to the AssayDepot example, but I guess that it contains a good detail of centralisation. So, not quite comparable to what I'm after, even though it is still an interesting example. – halfer Nov 10 '11 at 15:11
  • You asked for "any existing examples of server-to-server replication between separate groups?" The assaydepot example is a real company that uses couchdb's filtered replication between groups. I agree it is light on details. – Ryan Ramage Nov 10 '11 at 16:25
  • The refuge commit history is because it is based on couchdb. You are seeing all of the couchdb commits as well. – Ryan Ramage Nov 10 '11 at 16:30
  • Yes, you're right - I should have emphasised my interest in a completely decentralised approach. Have a tick :0) - your answer was very helpful and will give me a new avenue of research. – halfer Nov 10 '11 at 17:23