This is from a previous branch, but after discussing with Jeff, I don't think it applies anymore.  The thought was that the ECS would maintain a changeSet and as each item was completed, it'd be removed from the changeSet; if there was a problem that cause the commit to abort, you could fix it, then start the commit where you left off.  I think we've decided not to head in that direction at this point.