{"action":"created","issue":{"url":"https://api.github.com/repos/apache/celix/issues/12","repository_url":"https://api.github.com/repos/apache/celix","labels_url":"https://api.github.com/repos/apache/celix/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/apache/celix/issues/12/comments","events_url":"https://api.github.com/repos/apache/celix/issues/12/events","html_url":"https://github.com/apache/celix/pull/12","id":197166235,"number":12,"title":"CELIX-389: Added publisher/subscriber implementation","user":{"login":"rlenferink","id":10008950,"avatar_url":"https://avatars.githubusercontent.com/u/10008950?v=3","gravatar_id":"","url":"https://api.github.com/users/rlenferink","html_url":"https://github.com/rlenferink","followers_url":"https://api.github.com/users/rlenferink/followers","following_url":"https://api.github.com/users/rlenferink/following{/other_user}","gists_url":"https://api.github.com/users/rlenferink/gists{/gist_id}","starred_url":"https://api.github.com/users/rlenferink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlenferink/subscriptions","organizations_url":"https://api.github.com/users/rlenferink/orgs","repos_url":"https://api.github.com/users/rlenferink/repos","events_url":"https://api.github.com/users/rlenferink/events{/privacy}","received_events_url":"https://api.github.com/users/rlenferink/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-12-22T12:40:01Z","updated_at":"2016-12-22T12:52:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/celix/pulls/12","html_url":"https://github.com/apache/celix/pull/12","diff_url":"https://github.com/apache/celix/pull/12.diff","patch_url":"https://github.com/apache/celix/pull/12.patch"},"body":"Added the publisher / subscriber implementation which is based on the concepts of the remote service\r\nadmin (i.e. rsa / topology / discovery pattern).\r\n\r\nPublishers 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.\r\n\r\nThe dfi library is used for message serialization. The publisher / subscriber implementation will arrange that every message which will be send gets an unique id.\r\n\r\nFor 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.\r\n\r\nThe publisher/subscriber implementation supports sending of a single message and sending of multipart messages."},"comment":{"url":"https://api.github.com/repos/apache/celix/issues/comments/268793545","html_url":"https://github.com/apache/celix/pull/12#issuecomment-268793545","issue_url":"https://api.github.com/repos/apache/celix/issues/12","id":268793545,"user":{"login":"coveralls","id":2354108,"avatar_url":"https://avatars.githubusercontent.com/u/2354108?v=3","gravatar_id":"","url":"https://api.github.com/users/coveralls","html_url":"https://github.com/coveralls","followers_url":"https://api.github.com/users/coveralls/followers","following_url":"https://api.github.com/users/coveralls/following{/other_user}","gists_url":"https://api.github.com/users/coveralls/gists{/gist_id}","starred_url":"https://api.github.com/users/coveralls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveralls/subscriptions","organizations_url":"https://api.github.com/users/coveralls/orgs","repos_url":"https://api.github.com/users/coveralls/repos","events_url":"https://api.github.com/users/coveralls/events{/privacy}","received_events_url":"https://api.github.com/users/coveralls/received_events","type":"User","site_admin":false},"created_at":"2016-12-22T12:52:08Z","updated_at":"2016-12-22T12:52:08Z","body":"\n[![Coverage Status](https://coveralls.io/builds/9393915/badge)](https://coveralls.io/builds/9393915)\n\nCoverage decreased (-0.02%) to 73.577% when pulling **701eae493f0299c73bec9fe4f944734b881654bb on rlenferink:pubsub** into **147e8bfeda0a8eee55470ed50705e98cdc9f3b09 on apache:develop**.\n"}}
{"actor":{"display_login":"coveralls"}}