commit workflow model