> > You may go to an online bookstore, find any books you
> > want, and start the checkout process. Then you realise
> > that you wanted to change something, and since this
> site
> > won't let you go back, once the checkout is started
> > (Amazon is like that, for example), you open a new
> > window/tab, go to your "shopping cart", do any changes,
> > and perform checkout from there.
>
> What is your question about here?
The question came at the start of the next paragraph (what happens to the abandoned checkout?), which you reply to below.
> Do you wonder about the
> possibility of opening up a new window, of temporarily
> interrupting the checkout process and still resume
> afterwards with new data in the cart
Yes, I thought of that one after posting this, thus my follow-up posting. :)
> , or to invalidate an
> active checkout process when you changed your cart
> elsewhere?
I guess that's part of the same problem.
> > What happens to the process in the "abandoned"
> checkout?
> > Is it "garbage collected", and how might you do any
>
> Indeed it is. You can setup the collection time-out
> yourself and by default in RIFE it is 20 minutes.
Ok.
An interesting alternative implementation is to store the continuation state on the client, in an article I just came across (
http://ezrakilty.net/research/2006/05/web_continuations_not_so_harmful.html).
> > "rollback", if that might be an issue in this case?
>
> What you typically do instead of having to roll back is
> having a process that only commits the change once that
> particular linear flow is finished.
That makes sense (whether or not one is using continuations, also).
> When that is done, you
> write the data to the back-end and explicitly throw away
> all the continuation steps in the active conversation so
> that the user can't submit the same data twice.
Ah, ok. That answered my follow-up posting. :)