Nexeed
    • Introduction
    • User manual
      • Condition monitoring and its tabs
        • Live
        • Counters
        • Measurements
        • Events
        • Rules
        • View configuration
        • Details
      • Rules management
        • Rule types and standard functions
        • Rule details
      • Function configuration
      • Condition Monitoring widgets
      • Access Management
        • Application Roles
        • Fine-Grained Access Control and Configuration
        • How to Configure Organization Roles
    • Operations manual
      • Overview
      • System architecture and interfaces
        • System components
      • System requirements
        • General notes
        • cm/condition-monitoring-core
        • cm/rule-service-app
        • cm/rule-function-executor
        • cm/rule-result-aggregator
        • cm/rule-value-aggregator
        • cm/rule-value-provider
        • cm/stateful-function-executor
      • Migration from previous versions
        • Migration to 2.1+
        • Migration from CPM 1.5.4 to CM and RM 3.0.x (Nexeed IAS 2023.02.00.xx)
          • CPM to CM relational database migration
          • CPM to RM relational database migration
          • CM Influx database migration
          • Deletion of an old CPM installation
        • Resources mapping from MES to IAS Condition Monitoring
        • Migration to 4.0.0+ (Nexeed IAS 2024.01.00.xx)
        • Migration to 4.3.x (Nexeed IAS 2024.02.01.x)
        • Migration to 4.5.x (Nexeed IAS 2025.01.00.x)
        • Migration to 4.6.x (Nexeed IAS 2025.01.01.x)
        • Migration to 4.8.x (Nexeed IAS 2025.02.00.x)
        • Migration to 4.9.x (Nexeed IAS 2025.02.01.x)
      • Setup and configuration
        • Manual MACMA configuration after setting up a new tenant
        • RabbitMQ
        • Influx configuration
        • Kafka topics
        • Condition Monitoring - Helm Configuration
        • Advanced configuration parameters
          • cm/condition-monitoring-core
            • Common shared variables
            • Portal shared variables
            • MDM shared variables
            • RabbitMQ shared variables
            • OTEL shared variables
          • cm/rule-service-app
            • Rules Management shared variables
            • KAFKA shared variables
          • cm/rule-function-executor
          • cm/rule-result-aggregator
          • cm/rule-value-aggregator
          • cm/rule-value-provider
          • cm/stateful-function-executor
      • Start and shutdown
      • Regular operations
      • Failure handling
        • Rule Management Light Helm installation failing when Kafka is disabled or Kafka is not configured at all
        • User manual injection into Rule Management
        • Infrastructure outages: health verification Endpoints
        • OPP/PPMP are not received in CM
        • Master data (Devices, Facilities, Measuring Points, DeviceTypes) is missing in CM
        • CM is not visible in the portal
        • How to verify if the broker is out of sync
      • Backup and Restore
      • Logging and monitoring
        • General logging characteristics
        • Required monitoring
        • General logging format
        • Request-based logging format
        • Security logging format
        • Lifecycle logging format
        • Module health Endpoints and K8s probes
      • Known limitations
    • API documentation
      • Condition Monitoring HTTP API
      • Rules Management HTTP API
    • Glossary
Condition Monitoring
  • Industrial Application System
  • Core Services
    • Block Management
    • Deviation Processor
    • ID Builder
    • Multitenant Access Control
    • Notification Service
    • Ticket Management
    • Web Portal
  • Shopfloor Management
    • Andon Live
    • Global Production Overview
    • KPI Reporting
    • Operational Routines
    • Shift Book
    • Shopfloor Management Administration
  • Product & Quality
    • Product Setup Management
    • Part Traceability
    • Process Quality
    • Setup Specs
  • Execution
    • Line Control
    • Material Management
    • Order Management
    • Packaging Control
    • Rework Control
  • Intralogistics
    • AGV Control Center
    • Stock Management
    • Transport Management
  • Machine & Equipment
    • Condition Monitoring
    • Device Portal
    • Maintenance Management
    • Tool Management
  • Enterprise & Shopfloor Integration
    • Archiving Bridge
    • Data Publisher
    • Direct Data Link
    • Engineering UI
    • ERP Connectivity
    • Gateway
    • Information Router
    • Master Data Management
    • Orchestrator

Nexeed Learning Portal

  • Condition Monitoring
  • Operations manual
  • Setup and configuration
  • RabbitMQ
preview 4.10.0

RabbitMQ

Naming conventions

This concept extends MsgSpec-06 Messaging Infrastructure.

Type Pattern Example

Exchange

Exchanges decribed as domain models

x.{SCS_NAME}.\{DOMAIN MODEL}[OPTIONAL .\{SUB_DOMAIN_MODEL 1}.\{SUB_DOMAIN_MODEL N}]

1.x.cm.opp.v0.message.measurement

2.x.cm.ruleResult.positive

Queue

Queues described as actions (domain model from exchange + operation from routing key)

q.{SCS_NAME}.{SERVICE_NAME}.\{DOMAIN MODEL}[OPTIONAL .\{SUB_DOMAIN_MODEL 1}.\{SUB_DOMAIN_MODEL N}] + \{ROUTING KEY} (!)

Exchange: x.tm.ticket

  • q.cpm.ics.ticket.created

  • q.cpm.ics.ticket.stateChanged

Exchange: x.cpm.ppmp.machineMsg.original

  • q.cpm.nis.ppmp.machineMsg.original.received

Exchange: x.cpm.ppmp.machineMsg.preprocessed

  • q.cpm.nis.ppmp.machineMsg.preprocessed.received

Routing key

Routing key described as operations that are always relating to last element of domain model from exchange pattern

\{EVENT ACTION (verb as past tense)}

Exchange: tm.ticket

  • created

  • stateChanged

Exchange: cpm.ppmp.machineMsg.original

  • received

Exchange: cpm.ppmp.machineMsg.preprocessed

  • received

Inter-SCS communication

Business events:

As the Business Event Communication is not yet defined, we need a quick and probably temporary solution in order to realize asynchronous inter-system communication using business events (complete entities and not only IDs from the Integration Events) . The following modules need to communicate via RabbitMQ with each other:

Incoming Message Communication

Publisher Exchange Type Routing Key Payload Consumer Queue Name Description

OPP-Publisher

x.connectivity.opp.v09.machineEquipment.measurementTimeSeries.v09

topic

received

JSON Array - batch

Condition-Monitoring-Core

q.cm.core.opp.v09.machineEquipment.measurementTimeSeries.v09

receive OPP measurement messages

OPP-Publisher

x.connectivity.opp.v09.machineEquipment.machine.v09

topic

received

JSON Array - batch

Condition-Monitoring-Core

q.cm.core.opp.v09.machineEquipment.machine.v09

receive OPP machine messages

Rule-Service-App

x.cm.ruleResult.positive

topic

created

JSON Array - batch

Condition-Monitoring-Core

q.cm.core.ruleResult.positive

Receiving rule results to save as event in Influx and send deviations if activated to Deviation Processor

Rule-Service-App

x.cm.ppmp.v2.message.measurement

topic

created

JSON Array - batch

Condition-Monitoring-Core

q.cm.core.ppmp.v2.message.measurement

Receiving measurement message (for a specific use case) to save in influx

Condition-Monitoring-Core

x.cm.ppmp.v2internal.message.measurement

topic

enriched

JSON Array - batch

Rule-Service-App

q.cm.rs.ppmp.measurement.enriched

Receiving PPMPv2 enriched measurement message as an input for rule executions

Condition-Monitoring-Core

x.cm.ppmp.v2internal.message.machine

topic

enriched

JSON Array - batch

Rule-Service-App

q.cm.rs.ppmp.machineMsg.enriched

Receiving PPMPv2 enriched machine message as an input for rule executions

Condition-Monitoring-Core

x.cm.sdm.request

topic

startAnalysis

JSON

Sequence-Detection-Module

q.ai.core.sequenceDetectionRequest

Requests in order to start analysis.

Sequence-Detection-Module

x.ai.sdm.result

topic

analysisResults

JSON

Condition-Monitoring-Core

q.cm.core.analysisResults

Replies with analysis results.

Outgoing Message Communication

Business events will be communicated by binding consumer queues directly to exchanges of other SCS. In order to able to bind the queue to exchanges of other SCS, related permissions should be given to the user as seen below:

CM User RabbitMQ Configuration:

Virtual host

Configure regexp

Write regexp

Read regexp

/

^(q|x){1}\..(tm|rm|cm)\..+$

^(q|x){1}\.(tm|rm|cm|nexeed)\..+$

^(q|x){1}\.(tm|rm|cm|nexeed)\..+$

Messaging view for automatic ticket creation can be found here: Automatic Ticket Creation

Integration event

Incoming Message Communication

Publisher Exchange Type Routing Key Payload Consumer Exchange Name Queue Name

MDM

x.nexeed.integration

fanout

#

JSON Object (Integration Event)

(Rules Management) Rule-Service-App

x.cm.integration

q.cm.rs.facility.created q.cm.rs.facility.modified q.cm.rs.facility.removed q.cm.rs.device.created q.cm.rs.device.modified q.cm.rs.device.removed q.cm.rs.deviceType.created q.cm.rs.deviceType.modified q.cm.rs.deviceType.removed q.cm.rs.measuringPoint.modified q.cm.rs.measuringPoint.removed q.cm.rs.relation.created q.cm.rs.relation.removed

MDM

x.nexeed.integration

fanout

#

JSON Object (Integration Event)

(Condition Monitoring) Condition-Monitoring-Core

x.cm.integration (Exchange to exchange binding as defined MsgSpec-06 Messaging Infrastructure)

q.cm.core.facility.created q.cm.core.facility.modified q.cm.core.facility.removed q.cm.core.device.created q.cm.core.device.modified q.cm.core.device.removed q.cm.core.relation.created q.cm.core.relation.removed q.cm.core.deviceType.created q.cm.core.deviceType.modified q.cm.core.deviceType.removed q.cm.core.measuringPoint.modified q.cm.core.measuringPoint.removed

Messaging view for MDM integration event can be found here: MDM Integration Events and devices, facilities, device types, measuring points and relations integration events is specified in the Messaging Concept - MDM

Inner SCS communication

The communication between services of Condition Monitoring Core are listed here:

Publisher Exchange Type Routing Key API Documentation Consumer Queue Queue Description

Condition-Monitoring-Core

x.cm.device

topic

updateCache

JSON

Condition-Monitoring-Core

q.cm.core.device.updateCache-${random.uuid}

Updates device cache

Condition-Monitoring-Core

x.cm.deviceType

topic

updateCache

JSON

Condition-Monitoring-Core

q.cm.core.deviceType.updateCache-${random.uuid}

Updates device type cache

Condition-Monitoring-Core

x.cm.facility

topic

updateCache

JSON

Condition-Monitoring-Core

q.cm.core.facility.updateCache-${random.uuid}

Updates facility cache

Condition-Monitoring-Core

x.cm.tenant

topic

updateCache

JSON

Condition-Monitoring-Core

q.cm.core.tenant.updateCache-${random.uuid}

Updates tenant cache

Rule-Service-App

x.cm.rm.facility

topic

updateCache

JSON

Rule-Service-App

q.cm.rs.facility.updateCache-${random.uuid}

Updates facility cache

Rule-Service-App

x.cm.rule.created

topic

#

JSON

Rule-Service-App

q.cm.rs.rule.created-${random.uuid}

Add rule to cache

Rule-Service-App

x.cm.rule.updated

topic

#

JSON

Rule-Service-App

q.cm.rs.rule.updated-${random.uuid}

Update rule in cache

Rule-Service-App

x.cm.rule.deleted

topic

#

JSON

Rule-Service-App

q.cm.rs.rule.deleted-${random.uuid}

Delete rule from cache

Rule-Service-App

x.cm.measurementRuleExecutionMessage

topic

created

JSON Array - batch

Stateful-function-Executor

q.cm.sfe.measurementRuleExecutionMsg.received

Receiving measuremenExecutionMessage (measurement message + related rules)

Rule-Service-App

x.cm.machineRuleExecutionMessage

topic

created

JSON Array - batch

Stateful-function-Executor

q.cm.sfe.machineRuleExecutionMsg.received

Receiving MachineExecutionMessage (machine message + related rules)

Rule-Service-App

x.cm.rm.tenant

topic

updateCache

JSON

Rule-Service-App

q.cm.rs.tenant.updateCache-${random.uuid}

Updates tenant cache

Contents

© Robert Bosch Manufacturing Solutions GmbH 2023-2025, all rights reserved

Changelog Corporate information Legal notice Data protection notice Third party licenses