Major changes
Creating schedules is its own endpoint
Instead of creating schedules through the/v2/publish
endpoint, there is a dedicated /v2/schedules
api now.
Where are the messages in V2 ?
A big difference on v2 is that we no longer keep the messages to be accessed via Get Message to scale better.- A message is removed from the messages list if the call was successful.
- If the publish is failed, it will be moved to DLQs.
- This endpoint will return a message only if a message is retrying.
-
Use Upstash-Failure-Callback. Give the
Upstash-Failure-Callback
when publishing the message to be called when the message is failed to be delivered. In the given endpoint:- Handle the message.
- Remove it from DLQ using Delete a Message From DLQ via the
dlqId
delivered to Upstash-Failure-Callback.
-
Use DLQs. This means that you need a continuously running task to read the messages from DLQ.
The workflow in this case looks like this:
- Get all the messages with the last known cursor(Cursor will be empty in the beginning)
- Update the last known cursor with the cursor in the response.
- If the messages are empty, query the endpoint again after a delay.
- If there are messages, handle and delete them from DLQ via Delete a Message From DLQ
- Query the endpoint again after a delay with the updated cursor.