That is kind of the behavior I was going for. The operation not being performed until the future is accessed seemed to more closely match the behavior of a remote database where the IO operation is not guaranteed to be performed until you access the future. 

That being said if you don't think that makes sense I am happy to move to using ```Future.value```