Showing results for 
Search instead for 
Did you mean: 
Cisco Employee
Cisco Employee

Why do we need Edge Data Processing?




EFM is based on open source DSA Project

DSA Architecture





Broker Highlights


* Transparent multi-hop routing between message brokers
* Reliable and flexible data delivery between nodes
* Runs at the edge and has a very small footprint
* Fine grained publish–subscribe and request-reply message exchange
* Providing guaranteed QoS delivery

* Persistence (on/off) – prevents data loss when broker is disconnected (in-disk store in case of broker outage)
* Durability (on/off) – protects against data loss when client is disconnected (in-memory store and forward)



C++ and Dart based Brokers


* DART (open source) and C++ (Cisco developed) are functionally compatible
* DART Broker was higher performance than the C Broker. C++ Broker now replaces C Broker.
* The C++ Broker is a multi-threaded high-performance broker with very low footprint in order to leverage the multi-core capability of different platforms.
* The C++ broker scales and performs so well that we recommend to use it on all other levels, except when UI is required (System Monitor, DGlux5, System Administrator, Asset Manager), in a multi-tier architecture.


QoS (Quality of Service)


* QoS is defined by the subscriber
* QoS (Quality of service) – refers to the delivery of messages from the source to the subscriber.


+ QoS 0: No guarantee
+ QoS 1: In memory queue (circular buffer) of size 1 that does not survive client disconnect or broker restart.
Also known as “Volatile”.
+ QoS 2: In memory queue (circular buffer) up to a configured maximum size that survives a client disconnect, but not a broker restart.
Also known as “Durable.”
+ QoS 3: On disk queue (circular buffer) up to a configured maximum size that survives both a client disconnect and a broker restart.
Also known as “Durable and Persistent.”

QoS Considerations

* Performance impact every time you increase your QoS level
* eMMC drives can easily wear out (burn through the lifecycle)
* QoS usage best practices

* Use QoS 0 for UIs
* Use QoS 1 for most telemetry
* Use QoS 2 for important telemetry
* Use QoS 3 for alarms




* Enable communication with edge devices and message brokers
* Data acquisition

* Communicate to the device using its native language
* Bridges from device’s native protocol into EFM protocol

* Originators of data streams

* Always pass data upstream
* May pass commands downstream

* Support for multiple languages

* Dart, Java, JavaScript, Python, Ruby, C, C++, Scala

* EFM base links include:

* System, Dataflow, DQL, and ParStream


Kinetic Connector Catalog


EFM Components




Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links