Skip to content

Latest commit

 

History

History
63 lines (42 loc) · 3.24 KB

delivery.adoc

File metadata and controls

63 lines (42 loc) · 3.24 KB

Delivery

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF BCP14 (RFC2119 & RFC8174)

SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional
information regarding copyright ownership.

This program and the accompanying materials are made available under
the terms of the Apache License Version 2.0 which is available at
https://www.apache.org/licenses/LICENSE-2.0

SPDX-FileType: DOCUMENTATION
SPDX-License-Identifier: Apache-2.0

In the following section we will introduce event delivery policies and methods that will be referred throughout this document. Event delivery requirements shall be covered in their respective layers of uProtocol in subsequent sections,

1. Policies

Below are a high level summary of well known delivery policies:

Table 1. Delivery Policies
Terms Definition

At most once delivery policy

The producer will send messages at most one time, and will not try sending them again if it receives an error or timeout message, example is UDP transport layer protocol. Maps to MQTT QoS level 0.

At-least-once delivery policy

For each message that is attempted to be sent, multiple attempts are made to deliver the message such that at least one succeeds; this means that messages may be duplicated but not lost

Exactly-once delivery policy

Upon creation, each message is associated with a unique message identifier. This identifier is used to filter message duplicates during their traversal from sender to receiver. Maps to MQTT QOS 2 – Only Once (guaranteed)

Transaction-based delivery policy

The Message-oriented Middleware and the client reading a message from a queue participate in a transaction.

Time-out delivery policy

Timeout-based delivery service assures that a client receives a message before being deleted from a message queue. This is done by not deleting the message immediately after a client has read it, but only marking is as being invisible. After the client has read a message, it sends an acknowledgment to the message queue and the message is deleted.

2. Event Delivery Methods

Table 2. Event Delivery Methods
Term Definition

Push

Data is pushed from the Sender to the Receiver

Poll/Pull

Data is pulled from the Sender to the Receiver. This is done at certain intervals, the receiver does not know when new data is available. You may say that the receiver pulls the data, the distinction between polling and pulling is that polling is done at certain intervals to see if there is new data available.