docs: private <T extends OperationRequest, U extends OperationResponse> void invoke(OperationAttempt<T, U> attempt) {
      if (state.getState() == PrimitiveState.CLOSED) {
        attempt.fail(new PrimitiveException.ClosedSession("session closed"));
      } else {
        attempts.put(attempt.sequence, attempt);
        attempt.send();
        attempt.future.whenComplete((r, e) -> attempts.remove(attempt.sequence));
      }
    }