java.lang.Object
pl.allegro.tech.hermes.management.domain.topic.TopicService

@Component public class TopicService extends Object
  • Constructor Details

  • Method Details

    • createTopicWithSchema

      public void createTopicWithSchema(pl.allegro.tech.hermes.api.TopicWithSchema topicWithSchema, RequestUser createdBy, CreatorRights isAllowedToManage)
    • removeTopicWithSchema

      public void removeTopicWithSchema(pl.allegro.tech.hermes.api.Topic topic, RequestUser removedBy)
    • updateTopicWithSchema

      public void updateTopicWithSchema(pl.allegro.tech.hermes.api.TopicName topicName, pl.allegro.tech.hermes.api.PatchData patch, RequestUser modifiedBy)
    • updateTopic

      public void updateTopic(pl.allegro.tech.hermes.api.TopicName topicName, pl.allegro.tech.hermes.api.PatchData patch, RequestUser modifiedBy)
    • touchTopic

      public void touchTopic(pl.allegro.tech.hermes.api.TopicName topicName, RequestUser touchedBy)
    • scheduleTouchTopic

      public void scheduleTouchTopic(pl.allegro.tech.hermes.api.TopicName topicName, RequestUser touchedBy)
      Topic is touched so other Hermes instances are notified to read latest topic schema from schema-registry. However, schema-registry can be distributed so when schema is written there then it can not be available on all nodes immediately. This is the reason why we delay touch of topic here, to wait until schema is distributed on schema-registry nodes.
    • listQualifiedTopicNames

      public List<String> listQualifiedTopicNames(String groupName)
    • listQualifiedTopicNames

      public List<String> listQualifiedTopicNames()
    • listTopics

      public List<pl.allegro.tech.hermes.api.Topic> listTopics(String groupName)
    • getTopicDetails

      public pl.allegro.tech.hermes.api.Topic getTopicDetails(pl.allegro.tech.hermes.api.TopicName topicName)
    • getTopicWithSchema

      public pl.allegro.tech.hermes.api.TopicWithSchema getTopicWithSchema(pl.allegro.tech.hermes.api.TopicName topicName)
    • getTopicMetrics

      public pl.allegro.tech.hermes.api.TopicMetrics getTopicMetrics(pl.allegro.tech.hermes.api.TopicName topicName)
    • fetchSingleMessageFromPrimary

      public String fetchSingleMessageFromPrimary(String brokersClusterName, pl.allegro.tech.hermes.api.TopicName topicName, Integer partition, Long offset)
    • listTrackedTopicNames

      public List<String> listTrackedTopicNames()
    • listTrackedTopicNames

      public List<String> listTrackedTopicNames(String groupName)
    • listFilteredTopicNames

      public List<String> listFilteredTopicNames(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query)
    • listFilteredTopicNames

      public List<String> listFilteredTopicNames(String groupName, pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query)
    • queryTopic

      public List<pl.allegro.tech.hermes.api.Topic> queryTopic(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.Topic> query)
    • getAllTopics

      public List<pl.allegro.tech.hermes.api.Topic> getAllTopics()
    • preview

      public Optional<byte[]> preview(pl.allegro.tech.hermes.api.TopicName topicName, int idx)
    • previewText

      public List<pl.allegro.tech.hermes.api.MessageTextPreview> previewText(pl.allegro.tech.hermes.api.TopicName topicName)
    • queryTopicsMetrics

      public List<pl.allegro.tech.hermes.api.TopicNameWithMetrics> queryTopicsMetrics(pl.allegro.tech.hermes.api.Query<pl.allegro.tech.hermes.api.TopicNameWithMetrics> query)
    • listForOwnerId

      public List<pl.allegro.tech.hermes.api.Topic> listForOwnerId(pl.allegro.tech.hermes.api.OwnerId ownerId)