📯Exchanging data between apps

Introduction to the FLECS Service Mesh

The FLECS Service Mesh is a key component in our industrial automation solutions, designed to enable seamless, efficient inter-app communication. It solves the traditional silo problem by providing a real-time communication layer based on Zenoh, optimized for high-throughput, low-latency industrial environments.

Addressing Inter-App Communication Challenges

Historically, applications operated in isolation, complicating system integration and slowing down processes. By introducing the Service Mesh, FLECS provides a backbone for real-time data exchange and system orchestration.

Our Solution: Powered by Zenoh

FLECS uses Zenoh, an open-source protocol, to power the Service Mesh with Pub/Sub, Store, Query, and Compute features. This lean, fast, and flexible architecture is particularly well-suited for industrial applications.

Upgrade Notes for FLECS 3.x

  • System Apps No Longer Installed by Default: As of FLECS 3.x, tech.flecs.mqtt-bridge and tech.flecs.service-mesh are no longer included by default. Install them via the App Marketplace in the FLECS WebApp.

  • Manual Maintenance Required Post-Upgrade: When upgrading from previous versions, these apps must be uninstalled and reinstalled manually if needed.

Getting Started with FLECS Service Mesh

Step 1: Understanding the Architecture

The FLECS Service Mesh, uses a Pub/Sub mechanism for efficient data transfer across various protocols. It’s designed for low latency, high throughput, and minimal memory footprint, making it suitable for industrial applications requiring speed and reliability.

Step 2: Setting Up Your Environment

Ensure your devices are connected and running FLECS Core. The Service Mesh integrates seamlessly into the existing FLECS architecture, providing a unified layer for communication.

It's important to note that you need to install the Service Mesh and MQTT Bridge apps via the marketplace on your devices to utilize these functionalities. This step is crucial for enabling the full scope of features offered by the Service Mesh and ensuring efficient communication across your automation systems.

Step 3: Configuring Communication Channels

Configuring communication channels within the FLECS Service Mesh is crucial for optimal performance. Depending on your system's requirements and the nature of the apps you are using, there are two main options:

  1. Direct Connection via C or C++ Interface:

    • For the highest level of performance, particularly in scenarios demanding rapid data transfer and minimal latency, a direct connection using our C or C++ interfaces is recommended. Use the flunder client for highest performance. 👉 Integrate flunder into your app (Blueprint)

    • Pre-configured in Some Apps: It's important to note that some apps provided by vendors already include this direct connection option as a default feature. In such cases, users need not worry about setup complexities — the app comes ready to integrate seamlessly with the Service Mesh for maximum performance.

    • For custom implementations or to understand how this integration works, refer to our GitHub repository for practical examples: FLECS-Technologies/flunder.

  2. Integration via Mosquitto MQTT Broker and FLECS MQTT Bridge:

    • If you're integrating with an existing MQTT infrastructure, use the FLECS MQTT Bridge to connect to the 'flecs-mqtt' server through the standard MQTT port 1883 (non-encrypted communication).

    • This option is ideal for environments where MQTT is already in use, ensuring a smooth integration process while maintaining effective data exchange capabilities.

By choosing the appropriate communication setup, you can leverage the full capabilities of the FLECS Service Mesh, ensuring your automation system operates efficiently and reliably.

Step 4: Real-Time Data Exchange

While FLECS does not claim hard real-time performance, the Service Mesh is optimized for deterministic behavior with latencies in the range of 35–45µs using the flunder client.

📘 Developer Blueprint for flunder Integration

To support developers building native integrations:

👉 Visit Integrate flunder into your app (C++ Blueprint)

This guide shows how to:

  • Initialize a flunder client

  • Use structured messaging

  • Measure and optimize latency

  • Build real-time industrial apps using Zenoh


🧭 Next Steps

  • Customize and extend with semantic topics and security

  • Contact us for whitepapers and advanced benchmark results

Last updated

Was this helpful?