Attacking State discusses managing state in a series of related pages.
I'm inclined to agree with the third option. but...
There are two kinds of state flow in a web based application. there is the presentation flow, and the business logic flow.
I think it is the responsibility of the presentation flow to manage intermediate state according to the semantics of the type of presentation (report, wizard, etc). but to coordinate a state change with the business logic layer (add to shopping cart, delegate task, create new account, etc).
so basically, they need to make a distinction between presentation logic and business logic and maybe make this disction first class in their projects.
specifcally CarrierWave is agnostic. I would use struts flow to populate a graph, then commit the graph via a modify or a custom action object (in CarrierWave) to advance the business logic state.
Leave a comment