Interface MessagingProvider


  • public interface MessagingProvider
    Messaging abstraction for a journal based messaging like Apache Kafka. Messages are represented as json serialisable java classes. The API assumes that each MessagingProvider is mapped to exactly one partition, so positions in a topic can be represented as a single long offset.
    • Method Detail

      • createSender

        <T> MessageSender<T> createSender​(String topic)
        Create sender for a specific topic
        Type Parameters:
        T - type of the message
        Parameters:
        topic - topic name
        Returns:
        sender
      • createPoller

        Closeable createPoller​(String topicName,
                               Reset reset,
                               String assign,
                               HandlerAdapter<?>... adapters)
        Create a poller which listens to a topic and starts at a given reset or assigned offset.
        Parameters:
        topicName - name of the topic
        reset - fallback in case no assign is given or the assigned offset not valid
        assign - opaque implementation dependent assign string (can be null)
        adapters - list of listener adapters
        Returns:
        closeable handle of the poller
      • createPoller

        default Closeable createPoller​(String topicName,
                                       Reset reset,
                                       String assign,
                                       Map<String,​String> filterProperties,
                                       HandlerAdapter<?>... adapters)
        Create a poller which listens to a topic and starts at a given reset or assigned offset.
        Parameters:
        topicName - name of the topic
        reset - fallback in case no assign is given or the assigned offset not valid
        assign - opaque implementation dependent assign string (can be null)
        filterProperties - List of properties used to filter the topic messages. Only messages that match all filterProperties keys and values will be received.
        adapters - list of listener adapters
        Returns:
        closeable handle of the poller
      • assertTopic

        void assertTopic​(String topic)
                  throws MessagingException
        Validate that a topic is suitably set up for the messaging implementation
        Parameters:
        topic - topic name
        Throws:
        MessagingException - exception in case the topic is not suitable
      • retrieveOffset

        long retrieveOffset​(String topicName,
                            Reset reset)
        Retrieve earliest or latest offset for a topic
        Parameters:
        topicName - name of the topic
        reset - latest or earliest
        Returns:
        offset
      • assignTo

        String assignTo​(long offset)
        Create assign String to feed into poller based on a given offset. The inner format of the assign string is implementation specific.
        Parameters:
        offset -
        Returns:
        assign String
      • assignTo

        String assignTo​(Reset reset,
                        long relativeOffset)
        Get assign String to feed into createPoller based on either earliest or latest and a relative offset. The inner format of the assign string is implementation specific.
        Parameters:
        reset - reference point
        relativeOffset - relative offset
        Returns:
        assign String
      • getServerUri

        URI getServerUri()
        Return the uri of the messaging system backend. The uri must be unique regarding the validity of per topic offsets.
        Returns:
        uri