Titan occasionally returns transaction errors for a transaction that was sent a few requests back. Since Gremlin-Python assumes a request sent will get only its own answer back, this can cause the request-answer to no longer be in sync and there is no mechanism to recover.
It would be nice to have a way for the receiver to check the request-id to see if it corresponds to the original request. Additionally there should be a rolling transaction log in the case of a server error, so a recovery/try might be possible.
By implementing this, it would be possible to send Gremlin queries asynchronously as well.