Refactored to generate IDs for futures only on the server