Edgex Foundry Goes Full Message Bus With Its Latest EdgeX 2.3 “Levski” Release
EdgeX Foundry now fully embraces decoupled message bus communication within the platform
I am delighted to announce today the availability of the EdgeX Foundry 2.3 release which is codenamed Levski. This is the project’s 11th official release since its inception in 2017 and includes some significant new features and benefits to users that I’ll explain in this blog.
Having been elected as the chair of the EdgeX Technical Steering Committee (TSC) earlier this summer, it’s great to be able to announce the news of this release but it really is the technical expertise and dedication of the EdgeX development team that helps bring these releases to the wider community. Thanks again for everyone’s effort here. Great to be part of a group of many different companies and individuals working together to make great open source edge software.
What is Levski?
First let me give mention to the Levski codename. As you may know, each EdgeX release is named after a certain place or location in the world, with the specific place chosen each time significant contributors to the project. This version was named by two long term EdgeX contributors, Diana Atanasova and Malini B
handaru, both from VMware. For version 2.3 and the letter “L”, we come back over to Europe because Levski is a large mountain in the beautiful European country of Bulgaria. Bulgaria is also Diana’s homeland so it’s nice to be able to recognize that with the naming of this release.
New in EdgeX 2.3 – More about the Message Bus
Perhaps the biggest single new feature is the enhancement to support the delivery of commands via the EdgeX message bus.
We’ve previously made great strides in EdgeX V2 by delivering data from the southside (from devices and sensors) to the northside (to the core and application layers) via an internal message bus. This release also adds the support in the other direction, i.e., from the northside (the application layers and core layers) down to the southside (the devices and sensors) on the same message bus. Previously the southbound communication was exclusively via REST. Moving to support message bus-based communication in both directions is a big advancement and brings key benefits in terms of reduced latency and increased scalability. The asynchronous communication and the QoS-based control that you get from the message bus implementations that you can choose adds delivery guarantees and retransmissions of messages as needed.
More Run-Time Data
Another key area of development for Levski has been the focus on providing EdgeX users with more live information about how the system is running. EdgeX 2.3 adds System or “Control Plane” Events that can provide live updates as to what is happening. For example, users can receive notifications that new devices are added or that there has been a network disconnection from a specific device.
Somewhat related to System Events are the Telemetry Metrics. In contrast to events though, the metrics provide numeric information relating to how the platform is operating. Examples include the number of data readings that are persisted by core data or the number of secrets or tokens that are stored. Building of what was delivered previously, Levski adds more metrics across all of the services.
All of this information can be collected and reported however the user sees fit. In addition, the System Events and Telemetry Metrics mechanisms are available for users to add their own metrics as needed.
Many other updates and enhancements
There are many other new additions in this last release cycle including:
- Availability of NATS as alternative implementation of the internal EdgeX Message Bus. NATS is a popular and lightweight protocol with native delivery of EdgeX messages and potential advantages in high availability (HA) use cases
- Authenticated access to the MQTT message bus
- Securing of the Consul registry service with access tokens
- Passing status at the Open Source Security Foundation (OpenSSF)
- Initial construction of the EdgeX STRIDE threat model
- Improving the EdgeX development process with a new Use Case Requirements (UCRs) phase in the design procedure
See the release notes here for full details of what the Levski release provides.
New adopters and use cases for EdgeX
Running as a mature, stage 3 Linux Foundation project, there are now many users and adopters of EdgeX technology around the world. That includes users who download and deploy the open source EdgeX code, but also users of commercial products (including ours at IOTech) that are based on EdgeX. Take a look at some of the companies who are users of EdgeX. There are also a good set of presentation videos from different adopters of the technology.
One of my personal aims as TSC chair is to help encourage the adoption and wider use of EdgeX. Thanks to Building System Integrators (BSI) who recorded a talk at a recent TSC meeting. It would be great to hear from more companies who would like to do something similar. Please do reach out to me to arrange it.
What’s coming next?
Each release marks a busy period where of course we finalize the current version, but already we are looking forward at what we can achieve in the next release. Codenamed Minnesota and expected to be version 3.0, we are looking to add new features to help with the scalable configuration of EdgeX. Tune into the Minnesota technical planning conference that we are running next week where we will scope out what we can do. As always, attendance and contributions are very welcome.
Thanks again to everyone who had a hand in this release, and we look forward to more successful releases in the future.