Here's some more detail of our project:
What we're developing is best described as a web site since it will run
in a normal browser and appear to be a normal kind of wiki/blog site.
It doesn't need to handle enormous traffic on any one article like
wikipedia would because it's more group-centric to help small
organisations to collaborate on content, make decisions together and do
basic project management. In fact we'd probably be enforcing some kind
of splitting of large traffic nodes into smaller ones, for example
dividing large organisations into smaller departments to ensure that
each portal of activity always has a practical number of active members.
One of the parts of this system is an interface allowing organisation's
members to collaborate on their own applicational requirements by
supplying an interface for creating and maintaining collections of
workflows and forms and conditions for them to move between roles.
The reason we won't be extending an existing system like Drupal or Plone
is that we have a strict requirement to do this in a serverless way, and
it looks like this requirement needs to be designed for right from the
ground up since real-time queries on a global data-set would choke the
network.
To deal with this we're ensuring that the architecture avoids
network-wide queries/searches. Any such queries, for example a list of
the 5 newest organisations in the network, would be handled as a
directory (in the p2p space) that's updated when an organisation is
created, rather than a query being broadcast around the network when a
peer needs the list.
With this general "directory not search" approach to the architecture
we'd be minimising the expectations we have for the p2p networks
performance.
We also intend that the system be used by many organisations that have
very low quality or limited connectivity, so we'd be designing in
long-term eventual consistency and edit-conflict workflow mechanisms.
I'm working on the architecture and have some idea about how to achieve
this, but we're looking for a lead developer with good P2P experience to
guide us in the core technology decisions. For example maybe we don't
need all the capabilities of TeaTime and a simple DHT might suffice, or
maybe a standard CMS can be modified more easily than we think.
We still have a lot of research to do, and all your comments and advice
are very much appreciated :-)
Thanks a lot,
Aran