Special page

1. Edit Object action is requested. It creates a temporary copy of an object
2. User edits and saves the copy (it can be saved as many times as needed)
3. When user is satisfied he executes "Release" action. Minor/Versioned edit
is a required parameter for edit action. Probably will be implemented as
radio button, that does not have initial value set (to avoid user forgetting
to decided what kind of edit is it)

Internally object editing translates to following:

1. Edit Object action is requested. It creates a new version of an object in unpublished state (not visible for anyone besides author(s)).
2. Any child objects connections are copied from the prior version.
3. User edits and saves the copy (it can be saved as many times as needed)
4. When user is satisfied he executes "Publish" action. Object is switched to published state.
5. All the connections to the parent objects are processed. The action on every connection is performed as defined in version_policy field of the connection.

Minor/Versioned edit is a required parameter for edit action. Probably will be implemented as radio button, that does not have initial value set (to avoid user forgetting to decided what kind of edit is it)

UU will have clustering capability. It is not 100% clear what kind of
clustering support we will have, and how it will be implemented at this point.

Both database and application server need to be scalable in order to maintain
flexebility.

There is some rudimentary clustering support in PostgreSQL to the best
of my knowledge, but I don't know anything about details, so that needs
to be researched.

There is nothing currently built into CPPServ in terms of scalability,
but few things are pretty easy to implement. For example, we could
add load balancing support to the front-end module, which would allow
us to distribute requests between CPPServ instances. It could track
which request belongs to which session, and forward it accordingly.

Alternatively we could implement session state sharing, and then
use some external load blancer like vserver.