code: public void publish(Object obj) {
          try {
              if (_isBatch) {
                  publishBatch(obj);
              } else {
                  publish(obj, true);
              }
          } catch (InsufficientCapacityException ex) {
              throw new RuntimeException("This code should be unreachable!");
          }
      }
docs: /*
  Caches until consumerStarted is called, upon which the cache is flushed to the consumer