docs: public boolean offer(E e) {
          G partition = e.getGroup();
          lock.writeLock().lock();
          try {
              Queue<E> q = getOrCreateGroupQueue(partition);
              if (q.size() == 0) {
                  // remove from empty list and push onto available routes
                  GroupMetadata<G> metadata = emptyQueues.remove(partition);
                  if(metadata != null)
                      groupRoute.add(metadata);
              }
              boolean result = q.offer(e);
              notEmpty.signal();
              return result;
          } finally {
              lock.writeLock().unlock();
          }
      }