Attributes:
- is there a need in generic?
messaging.settlement.settled
: boolean
System-specific:
messaging.kafka.committed.offset
messaging.rabbitmq.ack.type
,messaging.rabbitmq.ack.delivery_tag
- settlement span name SHOULD include settlement kind:
queue-name nack
(for rabbit) ortopic-name commit
(for kafka) orqueue-name abandon
for Azure ServiceBus
Parent:
- ambient context: delivery span, manual processing span (if available)
Links:
- to message(s) when available
https://docs.confluent.io/platform/current/clients/consumer.html#offset-management
-
Terminology
- commit
-
Modes: auto/sync/async
-
Attributes
- offset
- partition
- consumer group
-
Parent
- auto: none/ambient
- sync/async: ambient: delivery span, manual processing span (if available)
-
Links:
- messages with commited offset (when known/possible - probably never), none otherwise
https://www.rabbitmq.com/consumers.html#acknowledgement-modes
https://www.rabbitmq.com/confirms.html
-
Terminology
- Delivery Acknowledgement
- don't mix with publisher confirms
-
Modes
- automatic (no ack, fire and forget) - similar to async in kafka
- no client side, it happens on server and acked if consumer received a message at all (TCP ack)
- manual - sync: span
- individual and multiple
- automatic (no ack, fire and forget) - similar to async in kafka
-
Attributes
- type: ack, nack, reject
- deliveryTag
-
Parent
- sync: ambient: delivery span, manual processing span (if available)
-
Links:
- message(s) if available
https://docs.oracle.com/javaee/7/api/index.html?javax/jms/package-summary.html https://jstobigdata.com/jms/guaranteed-delivery-using-jms-message-acknowledgement/
- Terminology
- acknowledgement
- Modes
- auto (no client action)
- CLIENT_ACKNOWLEDGE: message.ack() acks all messages received in the session so far
- DUPS_OK_ACKNOWLEDGE: no ack
- SESSION_TRANSACTED: JMSContext.commit() or rollback(): commits/rolls-back all mesages in this transaction
- Attributes
- session
- transaction
- mode
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-complete-v1.0-os.pdf
-
Terminology
- settlement, disposition
-
Modes
- auto
- manual
-
Attributes
- delivery tag
- settled
- delivery state: Accepted, Modified, Rejected, Released
- transaction info
- error condition, description, info
-
Parent
- ambient: delivery span, manual processing span (if available)
-
Links:
- message(s) if available and different from delivery/processing span?
-
Terminology
- settlement
-
Modes
- receive-and-delete (auto, no client call)
- peek-lock - manual
-
Attributes
- lock token
- disposition status
-
Parent
- ambient: delivery span, manual processing span
-
Links:
- message if available
-
Terminology
- checkpoint
-
Modes
- none
- manual
-
Attributes
- sequence number, offset
-
Parent
- ambient: delivery span, manual processing span
-
Links:
- none
N/A - consumers don't follow messageing semantics (e.g. HTTP endpoint)
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/features-capabilities.html https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-sqs-messages.html
-
Terminology
- delete message
- change visibility timeout
-
Modes
-
Attributes
- receipthandle
-
Parent
- ambient: delivery span, manual processing span
-
Links:
- none