In a processing system comprised of a server, a method for the server to provide data values, the method comprising:
- the server maintaining a cache of objects communicatively coupled with the server;
- the server executing an asynchronous computation to determine the value of a first object;
- returning a value of the first object from the cache of objects in response to a request for the first object occurring before the asynchronous computation has determined the value of the first object;
- returning a value of the first object determined by the asynchronous computation, in response to a request for the first object occurring after the asynchronous computation has determined the value of the first object;
- providing a datatype which includes a field for a value and a field for a future;
- and
- invoking computer code to lookup at least one data value corresponding to a key which returns an object of the datatype wherein the field for a value comprises a cached value corresponding to the key and the field for a future comprises a future which asynchronously calculates an updated value corresponding to the key.