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回答
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年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ