Messages, Modules and Flows

Messages, Modules and Flows

The Crosser Edge node is a real-time engine designed to process Messages. A message can be pushed from an external source, such as a MQTT or HTTP client, or it can be pulled from the Edge node using connectors for different protocols/services. Messages can also be generated internally, eg by a data generator. All messages are handled by modules. Getting data from external sources, processing messages and delivering processed data to external recievers are all handled by different modules available in the Crosser module library.

Processing of messages is defined by combining modules into Flows, where the output of one module is sent to the input of one or several other modules. In this way a sequence of processing events can be configured. Flows are designed using the FlowStudio editor using a graphical drag&drop interface. A flow starts with a data source module, typically an input module or a time trigger. Processing in modules starts as soon as a message is recieved and the result is delivered to the next module as soon as it is available. A flow ends with one or several output modules where the result is delivered to an external system. No data is stored in the edge node, data is processed as soon as it is recieved and the results are delivered as soon as they are available. There is one exception to this rule and that is the MemoryBuffer module which can be used to temporarily hold messages until external connectivity or services become available.

The messages sent between modules are dynamic C# objects that can handle any data type and structure. Message formats can also be changed within a flow using modules such as the Property Mapper. This allows for normalization of formats on the input and adapting results to the formats expected by the recieving ends. The internal format should not be mistaken for JSON, even though it may look similar. If JSON data is recieved it must be converted to the internal format before any processing is applied. Same thing if the external reciever expects JSON formatted data it must be converted on the output. These conversions are in most cases handled by the input/output modules but explicit conversion can also be done using the JSON module. This module can convert back and forth between JSON and the internal format.


    • Related Articles

    • New Flows page

      April 28, 2022 New Flows page with categories The Flows page has got a major overhaul with a new look and feel, improved usability and the addition of categories to help you organize your flows. You can now create your own hierarchical categories in ...
    • Creating Your First Flows

      Create Your First Flow In this guide we will start by creating a basic example Flow. It doesn't connect to any external system, the goal is just to get you familiarized with the concept of building and testing Flows. We will use an internal data ...
    • Analytics Modules Overview

      Analytics Modules Overview This section presents the analytics modules available in the Crosser Module library. Analytics modules are used to transform and harmonize message formats from different sources, as well as operate on the actual message ...
    • Test Your First Flow

      Test Your First Flow You now have a Flow and in most cases you want to first test your Flow before actually deploying it. This can be done by setting up an interactive session from within the Flow Studio editor. This will temporarily deploy your Flow ...
    • Monitoring the Crosser Node

      Introduction Once you have your first flows deployed, you might think about how to integrate the Crosser Node and Flows into your existing monitoring solution. In this article we describe what options you have and how to utilize provided interfaces ...