Uploaded image for project: 'Celix'
  1. Celix
  2. CELIX-389

Publisher / subscriber implementation

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Implemented
    • None
    • None
    • None
    • None

    Description

      Over the past few months I've been working together with Pepijn Noltes,
      Erjan Altena and Gabriele Ricciardi on a (secure) publisher / subscriber implementation, which is based on the concepts of the remote service admin (i.e. rsa / topology / discovery pattern).

      Publishers are senders of data, subscribers can receive data. Publishers
      can publish/send data to certain channels (called 'topics' further on), subscribers can subscribe to these topics. For every topic a publisher service is created by the pubsub admin. This publisher is announced through etcd. So etcd is used for discovery of the publishers. Subscribers are also registered as a service by the pubsub admin and will watch etcd for changes and when a new publisher is announced, the subscriber will check if the topic matches its interests. If the subscriber is interested in/subscribed to a certain topic, a connection between publisher and subscriber will be instantiated by the pubsub admin.

      The dfi library is used for message serialization. The publisher / subscriber implementation will arrange that every message which will be send gets an unique id.

      For communication between publishers and subscribers UDP and ZeroMQ can be used. When using ZeroMQ it's also possible to setup a secure connection to encrypt the traffic being send between publishers and subscribers. This connection can be secured with ZeroMQ by using a curve25519 key pair per topic.

      The publisher/subscriber implementation supports sending of a single
      message and sending of multipart messages.

      Attachments

        1. celix-pubsub.tar.gz
          68 kB
          Roy Lenferink

        Activity

          People

            Unassigned Unassigned
            rlenferink Roy Lenferink
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: