Abstract client_id generation