Content
Messages can be scheduled using either the Dispatch API, or in the MolnX portal. A message payload is any JSON-embeddable UTF-8 string of up to 60 KiB characters.
Messages are scheduled to be delivered to targets. A target can be one of several supported types. The currently supported target types are webhooks, Amazon SQS and Amazon SNS.
Below is an example showing how to use the Dispatch API to schedule a short message using cURL.
See also: API Reference, Limits
See also: Configuration
Dispatch will continually check if there are any undelivered messages to be delivered for each of your configured and enabled targets. This check is performed roughly every minute. Depending on the exact scheduled delivery time and the timing of the check, the actual delivery may be delayed by up to 2 minutes under normal circumstances.
The status of each message and any delivery attempts, both successful and failed, can be viewed in the Portal.
A message will always be in one of the following states:
Scheduled
The message has been scheduled but not yet delivered.
Delivered
The message has been delivered.
Cancelled
The message has been cancelled.
Dead Letter
The message has failed to be delivered enough times to be marked as a dead letter. A dead letter message may be rescheduled.
In total, 2 * 5 * 24 = 240 deliveries over roughly 24 hours are attempted before the message is marked as a dead letter.
Any not yet delivered message, including a dead letter, can be rescheduled manually in the Portal or using the Dispatch API. Rescheduling a message will reset the retry-flow.
A non-retryable failure immediately causes the message to be marked as a Dead Letter.
What failures are regarded as retryable or not retryable will depend on the target type. For example, a 400 status code returned from a webhook is regarded as a non-retryable failure and will immediately cause the message to be marked as a dead letter. On the other hand, a 500 status code is regarded as retryable will be rescheduled according to the above retry policy.
You can find more detailed information on the documentation pages for each target type. TODO
Below is an example of a message being delivered to a webhook: