The synchronous create() method return a String, so the asynchronous create() method accepts a StringCallback method, where the name is the return value of the synchronous method.
The create() methods need to return a String since if you create a Sequential ZNode, the caller doesn't know the name of the path they created.