Kafka
General
Apache Kafka is an open-source distributed event streaming platform used in many Applications and domains with focus on high-performance and low latency, scalability and high availability, e.g. for the Internet of Things (IoT). It has its own messaging protocol. It is designed as an extremely fast publish/subscribe or event streaming messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth.
Southbound Kafka communication
The Information Router (IR) supports the Kafka protocol between devices and IR, meaning that the device publishes to a Kafka broker (or Kafka cluster) in a certain topic and IR subscribes to another topic, in order to receive the response to that request if needed. The IR then forwards the received message to the target service, most commonly via REST. The response from the service is received by the IR again via the destination protocol (commonly REST) and published back to a topic on which the device is subscribed. The response to the device is currently limited as only error messages are sent back.
For the moment, only PPMP Messages are supported.
When southbound Kafka protocol is enabled the topics are automatically generated for the PPMP use case. The TenantId is dynamically filled based on the relevant environment variable. The devices have to send their PPMP messages to the relevant subscription Topics.
Subscription Topic : {TenantId}.ppmp.v2.message
Response Topic: {TenantId}.ppmp.v2.message.response
Subscription Topic : {TenantId}.ppmp.v2.measurement
Response Topic: {TenantId}.ppmp.v2.measurement.response
Subscription Topic : {TenantId}.ppmp.v2.process
Response Topic: {TenantId}.ppmp.v2.process.response
Subscription Topic : {TenantId}.ppmp.v3.message
Response Topic: {TenantId}.ppmp.v3.message.response
Subscription Topic : {TenantId}.ppmp.v3.measurement
Response Topic: {TenantId}.ppmp.v3.measurement.response
Subscription Topic : {TenantId}.ppmp.v3.process
Response Topic: {TenantId}.ppmp.v3.process.response[]
Kafka topic override
Ideally, messages should be queued to the topics generated by Information Router, however it can happen that customers can’t adapt their devices to send their messages to these queues. In this case, the otherwise generated topic names can be overridden from the helm chart (see image below).
Important Note: This scenario is only supported for a single tenant deployment.