code: @Override
      public CompletableFuture<StreamSegmentRecord> getSegment(final long segmentId) {
          // extract epoch from segment id.
          // fetch epoch record for the said epoch
          // extract segment record from it.
          int epoch = StreamSegmentNameUtils.getEpoch(segmentId);
          return getEpochRecord(epoch)
                  .thenApply(epochRecord -> {
                      Optional<StreamSegmentRecord> segmentRecord = epochRecord.getSegments().stream()
                                                                               .filter(x -> x.segmentId() == segmentId).findAny();
                      return segmentRecord
                              .orElseThrow(() -> StoreException.create(StoreException.Type.DATA_NOT_FOUND,
                                      "segment not found in epoch"));
                  });
      }
docs: Fetches Segment metadata from the epoch in which segment was created.
  
  @param segmentId segment id.
  @return : Future, which when complete contains segment object