QoS

QoS Levels

Kafkorama supports two clustering modes, each corresponding to a different quality of service (QoS) level:

Quality of Service Clustering Mode
Standard Standard Message Delivery
Guaranteed Guaranteed Message Delivery

These QoS levels are determined both by the Kafkorama cluster configuration and by how messages are published using the Kafkorama client libraries.

Both modes offer reliable message delivery and fault tolerance with no single point of failure, including automatic client reconnection if a cluster node goes down or if the connection between a client and a node is lost. However, Guaranteed Message Delivery provides a higher level of service, as detailed in the Guaranteed Message Delivery section below.

Standard Message Delivery

Clients communicate with the Kafkorama Gateway using the TCP protocol, which ensures reliable transport at the network level. In addition, Kafkorama provides high availability in both QoS modes.

Therefore, in a cluster configured for Standard Message Delivery, service continuity is maintained even in the event of a failure - such as a node going down or a broken client connection.

Both clustering modes - Standard and Guaranteed - offer reliable delivery. However, Guaranteed Message Delivery provides an extra level of reliability, described below.

Guaranteed Message Delivery

Guaranteed Message Delivery offers enhanced reliability over the Standard mode:

  • With Standard Message Delivery, when a client reconnects to another cluster member after a failure, it receives only the snapshot messages available for its subscribed subjects (along with any new real-time messages).
  • With Guaranteed Message Delivery, when a client reconnects after a failure, it receives not only the snapshot messages but also all messages published during the failover window for its subscribed subjects.

Example: Failover with Standard Message Delivery

When the client reconnects to node B at 10:12:20, it only receives the snapshot message for subject X - i.e., the latest retained message. It does not receive messages that were published during the disconnection period (such as the one at 10:12:05).

Example: Failover with Guaranteed Message Delivery

When the client reconnects to node B at 10:12:20, it receives both the snapshot message and all missed messages from the failover period - including the message at 10:12:05.

In summary:

  • With Standard Message Delivery, only the snapshot message for each subject is retained in memory per cluster node and sent on client reconnection.
  • With Guaranteed Message Delivery, both the snapshot and a configurable message history are retained and replayed.

Learn more in the History section.

Messaging with a Specific QoS Level

As described in the Messages section, each message can include a qos property, allowing clients to explicitly publish messages with either STANDARD or GUARANTEED QoS.

Important:
If the cluster is configured for Standard Message Delivery, all messages - regardless of their qos value - are delivered with STANDARD semantics. However, in a Guaranteed cluster, setting a message's QoS to STANDARD (for messages that don't require replay or history retention) can help optimize resource usage.

© 2025 MigratoryData. All rights reserved.