– The promise object is the asynchronous provider and is expected to set a value for the shared state at some point. – The future object is an asynchronous return object that can retrieve the value of the shared state, waiting for it to be ready, if necessary.