search icon
System Design feature image

Publish-Subscribe Framework and SDK


The Pub-Sub Framework and SDK is used to share live data among independent network entities or service endpoints in near real-time. This accelerator is well-suited for sharing internal state, counters and similar monitoring points among virtual network functions running in the context of VMs or containers. Using an optional SDN-controlled, OVS or OVS-DPDK-based virtual data bus, this solution promises real-time data sharing in a distributed deployment. Inter-VM Data is shared over OVS bridge or DPDK compliant OVS bridge using the OVS-DPDK provided para-virtualized virtio PMD.

The SDK provides a publish-subscribe mechanism to distributed applications or network functions, using which they can expose their internal states or variables to peering entities. This information can then be used for any kind of monitoring or decision-making.


The SDK is based on a library offering APIs for the following:

  • Publish a desired info from a service endpoint. The subscription scales to any number of subscribers and the publisher does not need to know about the subscribers before hand.
  • Subscribe for the published info in a service endpoint and get near-realtime updates, whenever the subscribed variable changes in any publishing agent.
  • Register/deregister/retrieve service endpoints

The SDK provides easy integration of these APIs with any proprietary application code base under test. The “publish” APIs can be used to publish the internal states or variables of an application. The user can also associate context information with the published info. The consumer of the information can be another application which can call “subscribe” APIs. The “subscriber” application can subscribe for a particular state or variable – retrieving information from all instances of the publishing application. It can subscribe for all states/variables published from a specific instance or all instances of the publishing application.

Desired Target Environment

The SDK can handle diverse underlying networking mechanism. But it can give tangible benefits in a virtualized environment. Using OpenStack as VIM and VMs/containers to deploy the network functions or s/w components, the SDK provides a robust infrastructure to share data/states among the VMs/containers.

The SDK APIs are integrated in the application code and packaged along with the applications. Thus, the publishing and subscribing of data is triggered automatically from the functional flow of the applications from the VMs/containers running them.

The diagram below shows one deployment scenario where the SDK has been used to share data among applications running in context of OpenStack VIM based network.


noun c 4566767 F7973B

Language binding in Python, C/C++ and Java

noun publish 2456663 F7973B

Multiple Types of Publishing - state/variable/tag based, context based

noun subscription 2997514 F7973B

Multiple Types of Subscription – state/variable/tag based, logical Id based, context based

noun sequence 3119307 F7973B

Sequence Independent Publisher-subscribers

noun network 5161339 F7973B

SDN controlled virtual bus for distributed deployment – Pairing publisher subscribers for unicast/multicast data sharing

noun data sharing 5129458 F7973B

Leverages OVS-DPDK based networking for real-time data sharing

noun puzzle 4878305 F7973B

Compatible with multiple VIMs

Use Cases

The aforesaid accelerator solution can be applied in the following use-cases:

  • Data sharing between instances of stateful MEC applications
  • Data sharing in chained micro-services based applications
  • Data relaying (sensor updates, alarms etc.) from sensors in Industrial IoT


Though the SDK itself is modular enough to run over any networking infrastructure, but to attain real-time data sharing in a virtualized environment (as depicted in the figure above), following requirements exist:

  • OpenVswitch
  • DPDK vhost user interfaces
  • High speed DPDK NIC cards

Enquire Now

We will treat any information you submit with us as confidential

arrow back top