code: @Override
      public CompletableFuture<Void> append(String streamSegmentName, byte[] data, Collection<AttributeUpdate> attributeUpdates, Duration timeout) {
          ensureRunning();
  
          TimeoutTimer timer = new TimeoutTimer(timeout);
          logRequest("append", streamSegmentName, data.length);
          this.metrics.append();
          return this.metadataStore.getOrAssignSegmentId(streamSegmentName, timer.getRemaining(),
                  streamSegmentId -> {
                      StreamSegmentAppendOperation operation = new StreamSegmentAppendOperation(streamSegmentId, data, attributeUpdates);
                      return processAttributeUpdaterOperation(operation, timer);
                  });
      }
docs: region StreamSegmentStore Implementation