FAQ

Frequently Asked Questions

Kafka

Q: What versions of Kafka does tenefit.cloud support?
Q: Can I use Kafka message compression when producing messages for consumption by tenefit.cloud?

SSE

Q: How many SSE streams can I open in my client application?

MQTT

Q: What versions of MQTT does tenefit.cloud support?
Q: Which MQTT features are not currently supported by tenefit.cloud?
Q: Does tenefit.cloud support encryption?
Q: Does tenefit.cloud support WebSocket?
Q: Does tenefit.cloud need a client SDK or library in order to use MQTT?
Q: What QoS levels are supported?
Q: What Last Will and Testament options are supported?
Q: Why do some of my Kafka messages have headers beginning with $mqtt?
Q: What happens when I publish an MQTT message with a message expiry interval?
Q: Can I set session expiry?
Q: Can I use Kafka log compacted topics?

AMQP

Q: What versions of AMQP does tenefit.cloud support?
Q: Which AMQP features are not currently supported by tenefit.cloud?
Q: Does tenefit.cloud support encryption?
Q: Does tenefit.cloud support WebSocket?
Q: Does tenefit.cloud need a client SDK or library in order to use AMQP?
Q: Why do some of my Kafka messages have headers beginning with $amqp?
Q: What happens when I publish an AMQP message with message expiration?
Q: Can I use Kafka log compacted topics?

Kafka


Q: What versions of Kafka does tenefit.cloud support?

Kafka 0.11.0 and higher is supported.


Q: Can I use Kafka message compression when producing messages for consumption by tenefit.cloud?

Kafka message compression is not supported by tenefit.cloud.


SSE


Q: How many SSE streams can I open in my client application?

You can have as many SSE streams open as you like, even hundreds. They are multiplexed over the same physical HTTP/2 connection, so there isn't any connection burden when you open more streams.

Note

Google Chrome browser has a built-in restriction that allows up to 256 streams per physical connection rather than honoring the maximum concurrent streams setting provided by the server during HTTP/2 handshake. In practice, that means any application which is expected to run in a Google Chrome browser should ensure it doesn’t create more than 256 concurrent open streams.


MQTT


Q: What versions of MQTT does tenefit.cloud support?

tenefit.cloud supports OASIS standard MQTT 5.

MQTT 3.1.1 is not currently supported. See differences between MQTT 3.1.1 and MQTT 5.


Q: Which MQTT features are not currently supported by tenefit.cloud?

The remaining MQTT features not currently supported, but are on the roadmap:

  • QoS 1 & 2
  • Authorization
  • Retained messages
  • Shared subscriptions

Q: Does tenefit.cloud support encryption?

Yes, for security, all communication with tenefit.cloud is encrypted. You can connect to tenefit.cloud with MQTT over TLS, or MQTT over WebSocket Secure (WSS).


Q: Does tenefit.cloud support WebSocket?

Yes, you can use MQTT over WebSocket Secure (WSS).


Q: Does tenefit.cloud need a client SDK or library in order to use MQTT?

One of the benefits of being based on standards is that a client application only needs to communicate with tenefit.cloud using standard MQTT.

tenefit.cloud does not provide any client SDK or library. You can use any off-the-shelf library for your client environment that can do encrypted MQTT 5 over TLS or encrypted MQTT 5 over WebSocket Secure (WSS).


Q: What QoS levels are supported?

tenefit.cloud supports currently supports QoS 0 for both publish and subscribe.

QoS 1 and 2 are on the roadmap.


Q: What Last Will and Testament options are supported?

tenefit.cloud supports currently supports QoS 0 for last will.

Retain and QoS 1 and 2 for last will are on the roadmap.


Q: Why do some of my Kafka messages have headers beginning with $mqtt?

Headers prefixed with $mqtt are reserved for internal use by tenefit.cloud. They are removed when delivering messages to MQTT clients. Other Kafka clients subscribed directly to the topic can ignore those headers.

See Mapping Kafka and MQTT for more detail.


Q: What happens when I publish an MQTT message with a message expiry interval?

Setting message expiry when publishing an MQTT message currently has no effect, as Kafka messages are expired based on the configured Kafka retention and cleanup policies.

This article explains those concepts: Kafka Log Retention and Cleanup Policies


Q: Can I set session expiry?

Yes, however currently the server will respond with a Session Expiry Interval of 0, meaning that sessions will end when the client disconnects.


Q: Can I use Kafka log compacted topics?

Yes, although you should be aware of the following: messages that have been log compacted by Kafka will appear to be expired in MQTT, irrespective of whether MQTT message expiry is set or not, since MQTT message expiry is not currently supported and is ignored.


AMQP


Q: What versions of AMQP does tenefit.cloud support?

tenefit.cloud supports AMQP 1.0.

Although they share the name "AMQP", AMQP 1.0 is quite different from AMQP 0-8, 0-9, 0-9-1, and 0-10 at the protocol level. AMQP 1.0 is a newer standards based-approach, not an evolution of those previous AMQP versions.


Q: Which AMQP features are not currently supported by tenefit.cloud?

The remaining AMQP features not currently supported, but are on the roadmap:

  • Authorization

    Note

    The SASL anonymous method is supported

  • Resumed deliveries
  • Sender settle modes unsettled, mixed (settled is supported)
  • Receiver settle mode second (first is supported)
  • Synchronous get
  • Message footers
  • Message filtering
  • Transactions

Q: Does tenefit.cloud support encryption?

Yes, for security, all communication with tenefit.cloud is encrypted. You can connect to tenefit.cloud with AMQP over TLS, or AMQP over WebSocket Secure (WSS).


Q: Does tenefit.cloud support WebSocket?

Yes, you can use AMQP over WebSocket Secure (WSS).


Q: Does tenefit.cloud need a client SDK or library in order to use AMQP?

One of the benefits of being based on standards is that a client application only needs to communicate with tenefit.cloud using standard AMQP.

tenefit.cloud does not provide any client SDK or library. You can use any off-the-shelf library for your client environment that can do encrypted AMQP 1.0 over TLS or encrypted AMQP 1.0 over WebSocket Secure (WSS).


Q: Why do some of my Kafka messages have headers beginning with $amqp?

Headers prefixed with $amqp are reserved for internal use by tenefit.cloud. They are removed when delivering messages to AMQP clients. Other Kafka clients subscribed directly to the topic can ignore those headers.

See Mapping Kafka and AMQP for more detail.


Q: What happens when I publish an AMQP message with message expiration?

Setting message expiration when publishing an AMQP message currently has no effect, as Kafka messages are expired based on the configured Kafka retention and cleanup policies.

This article explains those concepts: Kafka Log Retention and Cleanup Policies


Q: Can I use Kafka log compacted topics?

Yes, although you should be aware of the following: messages that have been log compacted by Kafka will appear to be expired in AMQP, irrespective of whether AMQP message expiration is set or not, since AMQP message expiration is not currently supported and is ignored.