Hi Simon, In this example, due to the fact that the actions made when an exception is raised are towards recovering the system to a consistent state (compensation actions are executed), I think the use of book and pay operations as an atomic operation would not affect the essence of the exceptional behavior of the scenario.
As you observed, we would have less cases, since now book/pay can be seen as an atomic operation. When some error is detected within the atomic operation, it tries to put the system into a consistent state, then it signals to the composed context an exception, just to information. However, maybe for another scenario, we could not have actions towards recovering the system to a consistent state, but actions which execute some exception treatment logic and try to go on with the operation execution. In the fault-tolerance area, we call this behavior as forward error recovery. On Sun, Feb 15, 2009 at 1:25 PM, Simon Laws <[email protected]>wrote: > Hi Douglas > > Interesting post. Look forward to seeing what you come up with. Re. > > "Maybe the travel agency sample, given above, is too simple to justify the > use of such complex (and maybe expensive) mechanisms" > > Maybe it's not simple enough in the very first instance? In the travel > agent sample you have 2 concurrent business processes executing where each > process takes the form: > > Book > Pay > > What would be lost to your scenario if you considered Book and Pay an > atomic operation which leaves you with four combinations; > > success > hotels fails (either flight has or hasn't run) > flight fails (either hotel has or hasn't run) > concurrent exception > > Just a thought. > > Regards > > Simon > -- Douglas Siqueira Leite Graduate student at University of Campinas (Unicamp), Brazil
