Thinking about this a bit more. Maybe attrs are fine but maybe the data handling method should return a deferred. This way if an attr being set results in a handler doing something different that call (that sets the attr) can reject the promise which should just return the request. Otherwise it can continue and do the rest of the handling based on statusCode etc.