AppSync Realtime Message Delivery Guarantee

0

Hi,

We're leveraging Appsync's real-time subscription/mutation capabilities in our app. Just wanted to check and confirm if there's any message delivery guarantee built-in in Appsync? What if the message is sent via WebSocket but not received by a web client (due to the nature of TCP)? is there some kind of Ack/retry mechanism?

couldn't find much info related to message delivery guarantee (real-time WebSockets) in the Appsync docs

已提問 2 年前檢視次數 762 次
2 個答案
0

Hello!
Maybe this sequence diagram can help you understand AppSync's GraphQL subscriptions mechanism.

AppSync does not provide an ACK / Retry mechanism in case the client does not receive the event.
However, I think it would have a considerable effort to manage any retry or guarantee mechanisms for each client.

However you could do this test:

  1. Register a client to a subscription
  2. Disconnect client connection (simulating network failure)
  3. Invoke a mutation
  4. See what happen client side
  5. Reconnect the network to the client
  6. See what happen client side.

(I would expect that you will not receive the mutation event)

I also recommend that you use the AWS suggested clients: https://docs.aws.amazon.com/en_en/appsync/latest/devguide/building-a-client-app.html

已回答 2 年前
0

There are two main modes of "mobile notifications", one is based on store-and-forward messages such as Apple Push Notification Service (APNS) or Google's, and the second is based on push/subscriptions such as AWS Simple Notification Service (SNS).

Most use cases of GraphQL and implementations are similar to the latter use case, which means that if the endpoint is not available the notification is dropped. These use cases are designed on the time-sensitivity of the notification and creating a long queue of all the notifications that you missed is usually less relevant. The assumption in these use cases is that if a mobile device is not connected to the network, the mobile application will pull the latest status of the data upon reconnection.

MLGuy
已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南