Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This messaging scheme, ezMQ, provides single unified data streaming interface among the EdgeX microservices regardless of underlying Message Queue protocol. It allows the microservices to exchange small size data packets ( actually, we need to define the meaning of 'small size' ) or events with high frequency. So the microservices will be able to stream data inside edge device( in-proc, localhost ) or with the other edge devices over a high speed LAN(Wired/Wireless). For the simultaneous data transmission, multiple microservices can publish to or subscribe from an endpoint which could be an <IP, port> combination or named topics. The microservices can initiate or stop data flow anytime without worrying about underlying operations. The microservices will be able to set standard filters over streaming data and the ezMQ will take care of applying them in highly optimized manner. The ezMQ will be used as data streaming backbone between different instances of the microservices . And the ezMQ provides high speed data serialization/deserialization for effective data transmission. And the ezMQ will also support dynamic topic based data delivery and creation and removal of filters.


Requirements

To be updated.Functional Requirements

Non-functional Requirements



Design

The attached documents describe the high level design consideration.


Code

https://github.com/mgjeong/protocol-ezmq-go

...

https://github.com/mgjeong/protocol-ezmq-java


Current status

To be updatedBased on C++ client library, Go, Java wrapper APIs are provided. And the C client library is being implemented.