# Acknowledgements
Various messages that are part of Ability Edge Module API support
acknowledgement delivery. The acknowledgement may be requested by adding
&ack={acknowledgement level}
to the topic that you're sending your message to.
The supported levels are:
none
- acknowledgements are not delivered.positive
- only successful acknowledgements are deliverednegative
- only failure acknowledgements are deliveredall
- all acknowledgements are delivered
By default, if you do not specify your choice of ack
, none
is used.
TIP
The all
level is very useful while developing any Edge module.
It will help you to find issues in the messages that you're
sending - the error descriptions often tell you exactly what is
wrong.
The following topics support acknowledgements:
topics_model_out
topics_messages_out
# Correlation ID
It is also possible to add a correlation ID to your messages. This is useful if you require help of Ability Support in debugging of some specific issue that you might have. If you supply the correlation ID of your messages, it will be possile to track them down in the Ability Platform's logs.
To add the correlation ID to your messages, add the following:
&correlationId={your correlation ID (preferably UUID format)}
TIP
Correlation IDs are typically in UUID/GUID format to be unique. The unique
nature of a GUID provides a key to search Platform's Application Insights (which
is used for logging) for all steps associated with your request.
Correlation IDs can be extended with a prefix or suffix to group all requests
from a device. For example, suppose a device sends a burst of delete
operations. A unique string prefix could be added to the correlationId
to
allow searching for all activities associated with the burst of deletes. Each
delete would have a unique GUID, but the prefix would be same the for all the
deletes, e.g. TEST01.adf5d42d-9160-46d7-b4d1-e3482781ce01
,
TEST01.236cb401-3e98-4e0c-9b1a-ed1b5096a5a7
, etc. You can then request
Operations (via a
ticket)
to look for "TEST01" string in the correlationIds to find all the requests
associated with your test scenario - and, eventually, to find the cause of
problems that you might be having.
Here's an example of a topic with correlation ID attached:
modules/mymodule/model/reported/abb.ability.device&correlationId=adf5d42d-9160-46d7-b4d1-e3482781ce01
If a module (in this example "mymodule") sent a message to that
topic, the whole Ability API communication chain would be
annotated with the correlation ID adf5d42d-9160-46d7-b4d1-e3482781ce01
.