doc/book/en/development/devrepo/operations.rst
branchstable
changeset 3561 a267669f83f9
parent 1714 a721966779be
child 3581 669854258b90
--- a/doc/book/en/development/devrepo/operations.rst	Mon Oct 05 19:11:48 2009 +0200
+++ b/doc/book/en/development/devrepo/operations.rst	Tue Oct 06 14:01:21 2009 +0200
@@ -3,7 +3,35 @@
 Repository operations
 ======================
 
-[WRITE ME]
+When one needs to perform operations (real world operations like mail
+notifications, file operations, real-world side-effects) at
+transaction commit time, Operations are the way to go.
+
+Possible events are:
+
+* precommit: the pool is preparing to commit. You shouldn't do
+  anything things which has to be reverted if the commit fail at this
+  point, but you can freely do any heavy computation or raise an
+  exception if the commit can't go.  You can add some new operation
+  during this phase but their precommit event won't be triggered
+
+* commit: the pool is preparing to commit. You should avoid to do to
+  expensive stuff or something that may cause an exception in this
+  event
 
-* repository operations
+* revertcommit: if an operation failed while commited, this event is
+  triggered for all operations which had their commit event already to
+  let them revert things (including the operation which made fail the
+  commit)
 
+* rollback: the transaction has been either rollbacked either
+  * intentionaly
+  * a precommit event failed, all operations are rollbacked
+  * a commit event failed, all operations which are not been triggered
+    for commit are rollbacked
+
+Exceptions signaled from within a rollback are logged and swallowed.
+
+The order of operations may be important, and is controlled according
+to operation's class (see : Operation, LateOperation, SingleOperation,
+SingleLastOperation).