Skip to main content

DetMQ

DetMQ is a messaging library that provides real-time in the sense of determinism, high-performance, and reliable communication in distributed real-time systems. It allows flexible communication from low-level real-time services to higher-level services and front-ends. DetMQ uses the following concepts to abstract low-level complexity:

  • Communication via the publisher/subscribe and request/reply patterns
  • Uses multiple transports to ensure maximum performance and real-time
  • Centralized management of connections between endpoints
  • Strong typing supported by schemas for safe engineering
  • Flexible serialization

Overview

A service uses a scope to manage multiple endpoints, such as Publisher or a Subscriber. The communication between the endpoints is formed by channels. The behavior of a channel is defined by its pattern. Each channel can have multiple topics and each topic contains exactly one message type. Channels support multiple transports for the actual communication. Transport connections can be set up manually or via the DetMQServer.

Messaging Patterns and Endpoints

DetMQ supports publish/subscribe and req/rep, which are the most common communication common communication patterns. This is a big advantage compared to well-known messaging solutions like gRPC, HTTP, MQTT, etc., which support either publisher/subscribe or request/reply, but not both together. We distinguish between producing endpoints (publish and reply) and consuming endpoints (subscribe and request).

Messaging Transport

DetMQ supports multiple transports per communication endpoint. This allows the maximum performance in a distributed system by selecting the best transport. DetMQ distinguishes between intra-node and inter-node communication as well as real-time and best effort traffic.

a) Real-time Traffic

  • Intra-node (communication within the same node)
    • Unix Domain Sockets
    • SharedMemory -Inter-node (communication between nodes)
    • TSN b) Best Effort Traffic
  • Intra-node (communication within the same node)
    • TCP
    • WebSocket
  • Inter-node (communication between nodes)
    • TCP
    • WebSocket