LogRequestAndAssignId should be part of the datastore interface, since any datastore implementation will have to keep a log of requests, right ?